diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5668e5f..919358b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,69 +27,35 @@ stages: .build_tpl: stage: build + variables: + IMAGE: ${CI_REGISTRY_IMAGE}/${IMAGE_NAME} + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" || ($CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH==$CI_DEFAULT_BRANCH) + changes: + - docker/${IMAGE_NAME}/**/* + - .gitlab-ci.yml script: - - export IMAGE_TAG=$IMAGE:$CI_COMMIT_REF_SLUG + # main is latest, MR create tag from branch name + - export IMAGE_TAG=$IMAGE:${CI_COMMIT_REF_SLUG/main/latest} - echo $CI_REGISTRY_USER $CI_REGISTRY $IMAGE_TAG - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker pull $IMAGE:latest || true - - docker build --cache-from $IMAGE:latest -t $IMAGE:$CI_COMMIT_SHA -t $IMAGE:$CI_COMMIT_SHORT_SHA -t $IMAGE_TAG -t $IMAGE:latest ./docker/$IMAGE_DOCKERFILE + - > + docker build + --cache-from $IMAGE:latest + -t $IMAGE:$CI_COMMIT_SHA + -t $IMAGE:$CI_COMMIT_SHORT_SHA + -t $IMAGE_TAG + ./docker/$IMAGE_NAME - docker push --all-tags $IMAGE -build_docker-datalad: +build_all_dockers: extends: .build_tpl - variables: - IMAGE: $CI_REGISTRY_IMAGE/docker-datalad - IMAGE_DOCKERFILE: datalad-docker - rules: - - changes: - - docker/datalad-docker/**/* - - .gitlab-ci.yml - -build_datalad-apptainer: - extends: .build_tpl - variables: - IMAGE: $CI_REGISTRY_IMAGE/datalad-apptainer - IMAGE_DOCKERFILE: datalad-apptainer - rules: - - changes: - - docker/datalad-apptainer/**/* - - .gitlab-ci.yml - -build_heudiconv: - extends: .build_tpl - variables: - IMAGE: $CI_REGISTRY_IMAGE/heudiconv - IMAGE_DOCKERFILE: heudiconv - rules: - - changes: - - docker/heudiconv/**/* - - .gitlab-ci.yml - -build_deface: - extends: .build_tpl - variables: - IMAGE: $CI_REGISTRY_IMAGE/deface - IMAGE_DOCKERFILE: deface - rules: - - changes: - - docker/deface/**/* - - .gitlab-ci.yml - -build_pydeface: - extends: .build_tpl - variables: - IMAGE: $CI_REGISTRY_IMAGE/pydeface - IMAGE_DOCKERFILE: pydeface - rules: - - changes: - - docker/pydeface/**/* - - .gitlab-ci.yml - -build_dicom_indexer: - extends: .build_tpl - variables: - IMAGE: $CI_REGISTRY_IMAGE/dicom_indexer - rules: - - changes: - - docker/dicom_indexer/**/* - - .gitlab-ci.yml + parallel: + matrix: + - IMAGE_NAME: + - datalad-docker + - datalad-apptainer + - heudiconv + - deface + - dicom_indexer