From e924919753d4d481f932c9e3aebb3fb5a6fd54f4 Mon Sep 17 00:00:00 2001 From: Marcel Loose <loose@astron.nl> Date: Thu, 5 Dec 2024 11:54:50 +0100 Subject: [PATCH] Sync with development --- .gitlab-ci.yml | 68 ++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 45085714..e7cdc0a1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,9 @@ workflow: # Don't create a pipeline if commit is on a branch with open merge requests - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never + # # Don't run if a tag is created, because this workflow itself may create a tag! + # - if: $CI_COMMIT_TAG + # when: never - when: always variables: @@ -42,14 +45,15 @@ after_script: image: bitnami/git script: - eval $(ssh-agent -s) - - chmod 400 "${SSH_PRIVATE_KEY}" - - ssh-add "${SSH_PRIVATE_KEY}" + - chmod 400 "$SSH_PRIVATE_KEY" + - ssh-add "$SSH_PRIVATE_KEY" - mkdir -p ~/.ssh - - ssh-keyscan ${CI_SERVER_HOST} > ~/.ssh/known_hosts + - ssh-keyscan $CI_SERVER_HOST > ~/.ssh/known_hosts - git config user.email $GITLAB_USER_EMAIL - git config user.name $GITLAB_USER_NAME - git remote set-url origin git@$CI_SERVER_HOST:$CI_PROJECT_PATH.git +# Docker login .setup_docker: stage: build tags: @@ -85,11 +89,11 @@ prepare_release: when: on_failure before_script: # When building a release, bail out if release tag already exists - - RELEASE="$(echo -n ${CI_COMMIT_BRANCH} | sed 's,^releases/,,')" + - RELEASE="$(echo -n $CI_COMMIT_BRANCH | sed 's,^releases/,,')" - | - if git ls-remote --tags --exit-code origin "${RELEASE}" > /dev/null + if git ls-remote --tags --exit-code origin "$RELEASE" > /dev/null then - echo "*** Release ${RELEASE} already exists. Bailing out! ***" + echo "*** Release $RELEASE already exists. Bailing out! ***" touch .tag.exists exit 1 fi @@ -98,16 +102,16 @@ prepare_release: # Make sure the current commit is checked out - git checkout "$CI_COMMIT_BRANCH" # Update dockerPull image URI in CWL steps with a tagged version - - sed -ri "/dockerPull/s,(astronrd/linc).*,\1:${RELEASE}," steps/*.cwl + - sed -ri "/dockerPull/s,(astronrd/linc).*,\1:$RELEASE," steps/*.cwl - git add -u steps/*.cwl # Only commit if there are changes - | if test -n "$(git status -uno --porcelain)" then - git commit -m "Tag ${RELEASE} added to dockerPull URI in CWL steps (by GitLab CI)" + git commit -m "Tag $RELEASE added to dockerPull URI in CWL steps (by GitLab CI)" fi # Tag current revision - - git tag -a ${RELEASE} -m "Git tag ${RELEASE} created (by GitLab CI)" + - git tag -a $RELEASE -m "Git tag ${RELEASE} created (by GitLab CI)" # Skip CI on this push - git push --follow-tags -o ci.skip @@ -118,13 +122,13 @@ versioning: - pip install setuptools_scm script: # Make sure the current branch is checked out - - git checkout ${CI_COMMIT_BRANCH} + - git checkout $CI_COMMIT_BRANCH - ./Docker/fetch_latest_commits.sh | tee commits.txt > versions.env - echo LINC_VERSION=$(python -m setuptools_scm) >> versions.env - - echo RELEASE=$(echo ${CI_COMMIT_BRANCH} | sed -n 's,^releases/,,p') >> versions.env + - echo RELEASE=$(echo $CI_COMMIT_BRANCH | sed -n 's,^releases/,,p') >> versions.env # Use hash of commits to determine version of base image (and rebuild if necessary) - - echo INTEGRATION_BASE_IMAGE=${CI_REGISTRY_IMAGE}/integration_base:$(sha256sum commits.txt | cut -d " " -f 1) >> versions.env - - echo INTEGRATION_IMAGE=${CI_REGISTRY_IMAGE}/integration_full:$(git log -n 1 --pretty=format:%H) >> versions.env + - echo INTEGRATION_BASE_IMAGE=$CI_REGISTRY_IMAGE/integration_base:$(sha256sum commits.txt | cut -d " " -f 1) >> versions.env + - echo INTEGRATION_IMAGE=$CI_REGISTRY_IMAGE/integration_full:$(git log -n 1 --pretty=format:%H) >> versions.env - cat versions.env artifacts: reports: @@ -142,7 +146,7 @@ build_base: else DOCKER_CACHE_PARAMETERS="" fi - docker build --tag $INTEGRATION_BASE_IMAGE ${DOCKER_CACHE_PARAMETERS} \ + docker build --tag $INTEGRATION_BASE_IMAGE $DOCKER_CACHE_PARAMETERS \ --build-arg LOFARSTMAN_COMMIT \ --build-arg DYSCO_COMMIT \ --build-arg IDG_COMMIT \ @@ -168,9 +172,9 @@ install_linc: DOCKER_CACHE_PARAMETERS="" fi docker build \ - ${DOCKER_CACHE_PARAMETERS} \ + $DOCKER_CACHE_PARAMETERS \ --build-arg BASE_TAG=$INTEGRATION_BASE_IMAGE \ - --build-arg LINC_VERSION=${LINC_VERSION} \ + --build-arg LINC_VERSION=$LINC_VERSION \ --file Docker/Dockerfile-linc \ --tag $INTEGRATION_IMAGE \ . @@ -227,7 +231,7 @@ run_hba_calibrator: image: $INTEGRATION_IMAGE script: - cwltool --no-container --preserve-environment PATH --preserve-environment LINC_DATA_ROOT --preserve-environment PYTHONPATH --outdir results --leave-tmpdir --tmpdir-prefix /tmp/run_hba_calibrator/ workflows/HBA_calibrator.cwl test_jobs/HBA_calibrator.json - - test_jobs/check_workflow_results.py results ${CI_PROJECT_DIR}/data/results_calibrator + - test_jobs/check_workflow_results.py results $CI_PROJECT_DIR/data/results_calibrator after_script: - find /tmp/run_hba_calibrator -name "*.log" -print0 | tar czf hba_calibrator_logs.tar.gz --null -T - artifacts: @@ -240,11 +244,11 @@ run_hba_target: image: $INTEGRATION_IMAGE script: - cwltool --no-container --preserve-environment PATH --preserve-environment LINC_DATA_ROOT --preserve-environment PYTHONPATH --outdir results --leave-tmpdir --tmpdir-prefix /tmp/run_hba_target/ workflows/HBA_target.cwl test_jobs/HBA_target.json - - test_jobs/check_workflow_results.py results ${CI_PROJECT_DIR}/data/results_target + - test_jobs/check_workflow_results.py results $CI_PROJECT_DIR/data/results_target after_script: - find /tmp/run_hba_target -name "*.log" -print0 | tar czf hba_target_logs.tar.gz --null -T - - find /tmp/run_hba_target -name "*.png" -print0 | tar czf inspection.tar.gz --null -T - - - find ${CI_PROJECT_DIR}/results/ -name "cal_solutions.h5" -print0 | tar czf cal_solutions.tar.gz --null -T - + - find $CI_PROJECT_DIR/results/ -name "cal_solutions.h5" -print0 | tar czf cal_solutions.tar.gz --null -T - artifacts: paths: - hba_target_logs.tar.gz @@ -257,11 +261,11 @@ run_hba_target_selfcal: image: $INTEGRATION_IMAGE script: - cwltool --no-container --preserve-environment PATH --preserve-environment LINC_DATA_ROOT --preserve-environment PYTHONPATH --outdir results --leave-tmpdir --tmpdir-prefix /tmp/run_hba_target/ workflows/HBA_target.cwl test_jobs/HBA_target_selfcal.json - - test_jobs/check_workflow_results.py --skip_soltabs TGSSphase_final results ${CI_PROJECT_DIR}/data/results_target_selfcal + - test_jobs/check_workflow_results.py --skip_soltabs TGSSphase_final results $CI_PROJECT_DIR/data/results_target_selfcal after_script: - find /tmp/run_hba_target -name "*.log" -print0 | tar czf hba_target_selfcal_logs.tar.gz --null -T - - find /tmp/run_hba_target -name "*.png" -print0 | tar czf inspection.tar.gz --null -T - - - find ${CI_PROJECT_DIR}/results/ -name "cal_solutions.h5" -print0 | tar czf cal_solutions.tar.gz --null -T - + - find $CI_PROJECT_DIR/results/ -name "cal_solutions.h5" -print0 | tar czf cal_solutions.tar.gz --null -T - artifacts: paths: - hba_target_selfcal_logs.tar.gz @@ -274,7 +278,7 @@ run_lba_calibrator: image: $INTEGRATION_IMAGE script: - cwltool --no-container --preserve-environment PATH --preserve-environment LINC_DATA_ROOT --preserve-environment PYTHONPATH --outdir results --leave-tmpdir --tmpdir-prefix /tmp/run_lba_calibrator workflows/LBA_calibrator.cwl test_jobs/LBA_calibrator.json - - test_jobs/check_workflow_results.py results ${CI_PROJECT_DIR}/data/results_calibrator_lba + - test_jobs/check_workflow_results.py results $CI_PROJECT_DIR/data/results_calibrator_lba after_script: - find /tmp/run_lba_calibrator -name "*.log" -print0 | tar czf lba_calibrator_logs.tar.gz --null -T - artifacts: @@ -287,11 +291,11 @@ run_lba_target: image: $INTEGRATION_IMAGE script: - cwltool --no-container --preserve-environment PATH --preserve-environment LINC_DATA_ROOT --preserve-environment PYTHONPATH --outdir results --leave-tmpdir --tmpdir-prefix /tmp/run_lba_target/ workflows/LBA_target.cwl test_jobs/LBA_target.json - - test_jobs/check_workflow_results.py --skip_soltabs GSMtec_final results ${CI_PROJECT_DIR}/data/results_target_lba + - test_jobs/check_workflow_results.py --skip_soltabs GSMtec_final results $CI_PROJECT_DIR/data/results_target_lba after_script: - find /tmp/run_lba_target -name "*.log" -print0 | tar czf lba_target_logs.tar.gz --null -T - - find /tmp/run_lba_target -name "*.png" -print0 | tar czf inspection.tar.gz --null -T - - - find ${CI_PROJECT_DIR}/results/ -name "cal_solutions.h5" -print0 | tar czf cal_solutions.tar.gz --null -T - + - find $CI_PROJECT_DIR/results/ -name "cal_solutions.h5" -print0 | tar czf cal_solutions.tar.gz --null -T - artifacts: paths: - lba_target_logs.tar.gz @@ -314,7 +318,7 @@ build_doc: - docs/build/html rules: # Only add job for commits to the default branch or on merge request events - - if: '$CI_COMMIT_BRANCH == "${CI_DEFAULT_BRANCH}" && $CI_PIPELINE_SOURCE != "schedule"' + - if: '$CI_COMMIT_BRANCH == "$CI_DEFAULT_BRANCH" && $CI_PIPELINE_SOURCE != "schedule"' - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - docs/**/* @@ -323,8 +327,8 @@ deploy_docker: stage: deploy extends: .deploy script: - - LINC_TAG=${LINC_VERSION//[^[:alnum:]_.-]/-} - - echo "LINC_TAG=${LINC_TAG}" + - LINC_TAG=$LINC_VERSION//[^[:alnum:]_.-]/- + - echo "LINC_TAG=$LINC_TAG" - docker pull $INTEGRATION_IMAGE - docker tag $INTEGRATION_IMAGE $CI_PROJECT_PATH:$LINC_TAG - docker tag $INTEGRATION_IMAGE $CI_PROJECT_PATH:latest @@ -332,7 +336,7 @@ deploy_docker: - docker push $CI_PROJECT_PATH:latest rules: # Run on the default branch or on a release branch - - if: '$CI_COMMIT_BRANCH == "${CI_DEFAULT_BRANCH}"' + - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - if: '$CI_COMMIT_BRANCH =~ /^releases//' when: on_success @@ -341,7 +345,7 @@ deploy_docker_tag_stable: extends: .deploy when: manual script: - - echo "INTEGRATION_IMAGE=${INTEGRATION_IMAGE}" + - echo "INTEGRATION_IMAGE=$INTEGRATION_IMAGE" - docker pull $INTEGRATION_IMAGE - docker tag $INTEGRATION_IMAGE $CI_PROJECT_PATH:stable - docker push $CI_PROJECT_PATH:stable @@ -356,14 +360,14 @@ rollback_release: before_script: - !reference [.setup_git, script] script: - - RELEASE="$(echo -n ${CI_COMMIT_BRANCH} | sed 's,^releases/,,')" + - RELEASE="$(echo -n $CI_COMMIT_BRANCH | sed 's,^releases/,,')" - | if test -f .tag.exists then - echo "*** Not removing existing tag ${RELEASE}! ***" + echo "*** Not removing existing tag $RELEASE! ***" exit 1 else - git push origin -d ${RELEASE} + git push origin -d $RELEASE fi finalize_release: -- GitLab