-
Reinder Kraaij authoredReinder Kraaij authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 33.52 KiB
stages:
- prepare-base
- prepare
- build
- unit_test
- integration_test
- regression_test
- dockerize
- deploy-test
- deploy-prod
- quality-control
include:
- template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'
variables:
VERSION: "0.0.0"
USE_PYTHON: "true"
CEP_HEADNODE: "head.cep4.control.lofar"
MARK_PIPELINES_LATEST:
description: "Use deployed pipelines as default in production?"
value: "false"
options:
- "false"
- "true"
#
# This script snippet sets the VERSION argument to the correct version based on the LOFAR-Release tag.
# Non LOFAR-Release tag builds will have the 0.0.0 version.
#
.set_version: &set_version
- if echo $CI_COMMIT_TAG | grep -Eq "^LOFAR-Release-[0-9]+_[0-9]+_[0-9]+"; then TMP=${CI_COMMIT_TAG//LOFAR-Release-/}; VERSION=${TMP//_/.}; fi
- echo "BUILDING $VERSION"
#
# This script snippet needs a PACKAGE variable to define which package to build.
# It also uses the global VERSION variable.
#
.build_mac_package: &build_mac_package
- echo "Building $PACKAGE..."
- mkdir -p build/gnucxx11_opt
- cd build/gnucxx11_opt
- /usr/local/bin/cmake -DBUILD_PACKAGES=$PACKAGE -DUSE_PYTHON=$USE_PYTHON -DUSE_UNITTEST++=OFF -DWINCC_ROOT_DIR=/opt/WinCC_OA/3.16/ -DBLITZ_ROOT_DIR=/opt/blitz/ -DCASACORE_ROOT_DIR=/opt/casacore/ -DCMAKE_INSTALL_PREFIX=/opt/lofar ../..
- make -j $(nproc)
- make DESTDIR=${CI_BUILDS_DIR}/${CI_COMMIT_SHORT_SHA}/install install
- cd ${CI_BUILDS_DIR}/${CI_COMMIT_SHORT_SHA}/install/opt/lofar
- tar --ignore-failed-read --exclude=include --exclude="*.ztar" -czf ${PACKAGE}_${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}.ztar *
- *set_version
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ${PACKAGE}_${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}.ztar "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PACKAGE}/${VERSION}/${PACKAGE}_${CI_COMMIT_REF_NAME}_0.x86_64.ztar"'
#
# This script snippet needs a LOFAR_TARGET variable to define the SSH host to connect to.
#
.prepare_ssh: &prepare_ssh
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client git -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan $LOFAR_TARGET >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
#
# This script snipper needs a PACKAGE, a LOFAR_TARGET, and a LOFAR_USER variable to mac install a package to a target
# It also uses the global VERSION variable
#
.mac_install_package: &mac_install_package
- *set_version
- ssh $LOFAR_USER@$LOFAR_TARGET "mkdir -p ~/incoming && cd ~/incoming && wget --no-check-certificate --backups=1 --user=$MACINSTALL_USER --password=$MACINSTALL_PASSWORD https://git.astron.nl/api/v4/projects/6/packages/generic/$PACKAGE/$VERSION/${PACKAGE}_${CI_COMMIT_REF_NAME}_0.x86_64.ztar"
- ssh $LOFAR_USER@$LOFAR_TARGET "MAC_install -f ${PACKAGE}_${CI_COMMIT_REF_NAME}_0.x86_64.ztar -v ${CI_COMMIT_REF_NAME}"