diff --git a/CHANGELOG.md b/CHANGELOG.md index e48b6f8378403ca8e2f45ce9c0a3c8d3322bec97..04072859b3dff4e1310ffb8fba773d0a3d2ae765 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [6.0.4] - 2024-11-08 + +### Fixed + +- Fixed `multi-target-docker-images` container naming discussed in + https://gitlab.developers.cam.ac.uk/uis/devops/iam/authentication/shibboleth/attributes-proxy/-/merge_requests/22#note_736265 + ## [6.0.3] - 2024-11-06 ### Fixed diff --git a/auto-devops/multi-target-docker-images.gitlab-ci.yml b/auto-devops/multi-target-docker-images.gitlab-ci.yml index 9a8de651b6add0ecadd1e1d815a783ce5128d98c..219bf0ae61ca16f2f4c2ef7a7c9f29e6712dfce4 100644 --- a/auto-devops/multi-target-docker-images.gitlab-ci.yml +++ b/auto-devops/multi-target-docker-images.gitlab-ci.yml @@ -27,13 +27,16 @@ spec: # DISABLE_ARTIFACT_REGISTRY_PUSH: "" include: - - local: "/fragments/multi-target-docker-images.gitlab-ci.yml" + - local: "/fragments/multi-target-docker-images/multiple-docker-images.gitlab-ci.yml" inputs: docker_build_targets: $[[ inputs.docker_build_targets ]] rules: - if: $MULTI_DOCKER_IMAGE_BUILD_ENABLED when: never - if: $CI_PIPELINE_SOURCE != "parent_pipeline" + - local: "/fragments/multi-target-docker-images/build.gitlab-ci.yml" + rules: + - if: $MULTI_DOCKER_IMAGE_BUILD_ENABLED && $CI_PIPELINE_SOURCE == "parent_pipeline" variables: # Disabled Auto DevOps jobs which do not need to be duplicated in multi-image child pipelines. diff --git a/fragments/multi-target-docker-images/build.gitlab-ci.yml b/fragments/multi-target-docker-images/build.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..2febc7d0438b021d8e98ad35da3ac5d241b3ba85 --- /dev/null +++ b/fragments/multi-target-docker-images/build.gitlab-ci.yml @@ -0,0 +1,19 @@ +# We need to change the `CI_APPLICATION_REPOSITORY` and `CI_ARTIFACT_REGISTRY_REPOSITORY` to +# include `DOCKER_BUILD_TARGET`. We can't do this as part of multiple-docker-images:variables +# because the outcome of the variables is conditional based on the existance of `CI_COMMIT_TAG`. +# So we set this in the child pipeline. +build: + before_script: + - | + # This is adapted from the Auto-DevOps Build job to ensure we're working on the same image! + # See https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml + if [[ -z "$CI_COMMIT_TAG" ]]; then + export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE/$DOCKER_BUILD_TARGET/$CI_COMMIT_REF_SLUG} + export CI_ARTIFACT_REGISTRY_REPOSITORY=$ARTIFACT_REGISTRY_DOCKER_REPOSITORY/${ARTIFACT_REGISTRY_IMAGE_NAME:-$CI_PROJECT_NAME/$DOCKER_BUILD_TARGET/$CI_COMMIT_REF_SLUG} + else + export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE/$DOCKER_BUILD_TARGET} + export CI_ARTIFACT_REGISTRY_REPOSITORY=$ARTIFACT_REGISTRY_DOCKER_REPOSITORY/${ARTIFACT_REGISTRY_IMAGE_NAME:-$CI_PROJECT_NAME/$DOCKER_BUILD_TARGET} + fi + + echo "CI_APPLICATION_REPOSITORY=$CI_APPLICATION_REPOSITORY" >> gl-auto-build-variables.env + echo "CI_ARTIFACT_REGISTRY_REPOSITORY=$CI_ARTIFACT_REGISTRY_REPOSITORY" >> gl-auto-build-variables.env diff --git a/fragments/multi-target-docker-images.gitlab-ci.yml b/fragments/multi-target-docker-images/multiple-docker-images.gitlab-ci.yml similarity index 81% rename from fragments/multi-target-docker-images.gitlab-ci.yml rename to fragments/multi-target-docker-images/multiple-docker-images.gitlab-ci.yml index e347ddb90878c8a2605bb038d07cb5e121e8ef5e..c54b03c155fc423003b32e1a9c32016d40b44bf8 100644 --- a/fragments/multi-target-docker-images.gitlab-ci.yml +++ b/fragments/multi-target-docker-images/multiple-docker-images.gitlab-ci.yml @@ -22,10 +22,6 @@ multiple-docker-images: # multi-image build. MULTI_DOCKER_IMAGE_BUILD_ENABLED: "1" - # Override the docker image name used for GitLab and GCP artifact registry push. - CI_APPLICATION_REPOSITORY: "$CI_REGISTRY_IMAGE/$DOCKER_BUILD_TARGET" - CI_ARTIFACT_REGISTRY_REPOSITORY: "$CI_ARTIFACT_REGISTRY_REPOSITORY/$DOCKER_BUILD_TARGET" - # Re-enabled build, container scanning and docker image push jobs. BUILD_DISABLED: "" CONTAINER_SCANNING_DISABLED: ""