Merge branch 'enh/build-parallel-matrix' into 'main'

use matrix for build

See merge request ni-dataops/containers!3
This commit is contained in:
Basile Pinsard 2024-01-31 18:37:20 +00:00
commit 0f1a3b7ebb
1 changed files with 25 additions and 50 deletions

View File

@ -27,60 +27,35 @@ stages:
.build_tpl: .build_tpl:
stage: build 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: 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 - echo $CI_REGISTRY_USER $CI_REGISTRY $IMAGE_TAG
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $IMAGE:latest || true - 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 - docker push --all-tags $IMAGE
build_docker-datalad: build_all_dockers:
extends: .build_tpl extends: .build_tpl
variables: parallel:
IMAGE: $CI_REGISTRY_IMAGE/docker-datalad matrix:
IMAGE_DOCKERFILE: datalad-docker - IMAGE_NAME:
rules: - datalad-docker
- changes: - datalad-apptainer
- docker/datalad-docker/**/* - heudiconv
- .gitlab-ci.yml - deface
- dicom_indexer
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