diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index affcc9d323ab51b3ac5eb3c2c79db344d089cc78..4e38e66a45398a91bdf6d0ec75aa33ce4d1e6182 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,6 +42,12 @@ stages: - . bootstrap/etc/lofar20rc.sh || true ## Allow docker image script to execute # - chmod u+x $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh +.base_docker_images_except: + extends: .base_docker_images + except: + refs: + - tags + - master .base_docker_store_images: extends: .base_docker_images script: @@ -55,17 +61,15 @@ docker_store_images_master_tag: - master docker_store_images_changes: extends: .base_docker_store_images - rules: -# https://stackoverflow.com/questions/68955071/how-to-disable-detached-pipelines-in-gitlab - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + # This will spawn as detached pipeline but atleast ensures the changes rule + # works. See the following references + # https://stackoverflow.com/questions/68955071/how-to-disable-detached-pipelines-in-gitlab + # https://docs.gitlab.com/ee/ci/jobs/job_control.html#jobs-or-pipelines-run-unexpectedly-when-using-changes + only: + refs: + - merge_requests + changes: - docker-compose/.env - when: always docker_build_image_all: extends: .base_docker_images only: @@ -106,56 +110,42 @@ docker_build_image_all: - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh hdbppts-cm latest - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh hdbppts-es latest docker_build_image_elk: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/elk.yml - docker-compose/elk/* - docker-compose/elk-configure-host/* - when: always script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh elk $tag - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh elk-configure-host $tag docker_build_image_lofar_device_base: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/lofar-device-base.yml - docker-compose/lofar-device-base/* - when: always script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh lofar-device-base $tag docker_build_image_prometheus: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/prometheus.yml - docker-compose/prometheus/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh prometheus $tag docker_build_image_itango: - extends: .base_docker_images + extends: .base_docker_images_except only: refs: - merge_requests @@ -166,390 +156,285 @@ docker_build_image_itango: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh itango $tag docker_build_image_grafana: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/grafana.yml - docker-compose/grafana/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh grafana $tag docker_build_image_jupyter: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/jupyter.yml - docker-compose/jupyter/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh jupyter $tag docker_build_image_apsct_sim: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/aspct-sim.yml - docker-compose/pypcc-sim-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh apsct-sim $tag docker_build_image_apspu_sim: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/apspu-sim.yml - docker-compose/pypcc-sim-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh apspu-sim $tag docker_build_image_recv_sim: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/recv-sim.yml - docker-compose/pypcc-sim-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh recv-sim $tag docker_build_image_sdptr_sim: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/sdptr-sim.yml - docker-compose/sdptr-sim/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh sdptr-sim $tag docker_build_image_unb2_sim: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/unb2-sim.yml - docker-compose/pypcc-sim-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh unb2-sim $tag docker_build_image_device_apsct: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-aspct.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-aspct $tag docker_build_image_device_apspu: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-apspu.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-apspu $tag docker_build_image_device_pdu: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-pdu.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-pdu $tag docker_build_image_device_tilebeam: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-tilebeam.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-tilebeam $tag docker_build_image_device_beamlet: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-beamlet.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-beamlet $tag docker_build_image_device_digitalbeam: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-digitalbeam.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-digitalbeam $tag docker_build_image_device_boot: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-boot.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-boot $tag docker_build_image_device_docker: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-docker.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-docker $tag docker_build_image_device_observation_control: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-observation_control.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-observation_control $tag docker_build_image_device_antennafield: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-antennafield.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-antennafield $tag docker_build_image_device_recv: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-recv.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-recv $tag docker_build_image_device_sdp: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-sdp.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-sdp $tag docker_build_image_device_sst: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-sst.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-sst $tag docker_build_image_device_unb2: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-unb2.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-unb2 $tag docker_build_image_device_xst: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/device-xst.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-xst $tag docker_build_image_device_temperature_manager: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests - docker-compose/device-temperature-manager.yml - docker-compose/lofar-device-base/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-temperature-manager $tag docker_build_image_archiver_timescale: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/archiver-timescale.yml - docker-compose/timescaledb/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh archiver-timescale $tag docker_build_image_hdbppts_cm: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/archiver-timescale.yml - docker-compose/tango-archiver-ts/* script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh hdbppts-cm $tag docker_build_image_hdbppts_es: - extends: .base_docker_images - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - if: '$CI_COMMIT_TAG != null' - when: never - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: never - - changes: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: - docker-compose/archiver-timescale.yml - docker-compose/tango-archiver-ts/* script: