@@ -10,6 +10,7 @@ set -euo pipefail
1010: " ${AWS_ACCOUNT_ID:? AWS_ACCOUNT_ID is required} "
1111: " ${AWS_REGION:? AWS_REGION is required} "
1212: " ${ECR_REPO:? ECR_REPO is required} "
13+ : " ${CSI:? CSI is required} "
1314
1415# Authenticate Docker with AWS ECR using an ephemeral login token.
1516aws ecr get-login-password --region " ${AWS_REGION} " | docker login --username AWS --password-stdin " ${AWS_ACCOUNT_ID} " .dkr.ecr." ${AWS_REGION} " .amazonaws.com
@@ -19,16 +20,17 @@ if [ -n "${GHCR_LOGIN_USER:-}" ] && [ -n "${GHCR_LOGIN_TOKEN:-}" ]; then
1920 echo " ${GHCR_LOGIN_TOKEN} " | docker login ghcr.io --username " ${GHCR_LOGIN_USER} " --password-stdin
2021fi
2122
22- # Resolve the image tag: prefer a GitHub tag, otherwise use main-<short-sha> .
23+ # Resolve git references for image tags .
2324GIT_SHA=$( git rev-parse --short HEAD)
24- if [ " ${GITHUB_REF_TYPE:- } " = " tag" ] && [ -n " ${GITHUB_REF_NAME:- } " ]; then
25- IMAGE_TAG=" ${GITHUB_REF_NAME} "
26- else
27- IMAGE_TAG=" main-${GIT_SHA} "
28- fi
2925
30- # Compose the full ECR image reference.
31- ECR_IMAGE=" ${AWS_ACCOUNT_ID} .dkr.ecr.${AWS_REGION} .amazonaws.com/${ECR_REPO} :${IMAGE_TAG} "
26+ # Namespace tags by CSI to avoid cross-environment collisions.
27+ IMAGE_TAG_LATEST=" ${CSI} -latest"
28+ IMAGE_TAG_COMMIT=" ${CSI} -${GIT_SHA} "
29+
30+ # Compose the full ECR image references.
31+ ECR_REPO_URI=" ${AWS_ACCOUNT_ID} .dkr.ecr.${AWS_REGION} .amazonaws.com/${ECR_REPO} "
32+ ECR_IMAGE_LATEST=" ${ECR_REPO_URI} :${IMAGE_TAG_LATEST} "
33+ ECR_IMAGE_COMMIT=" ${ECR_REPO_URI} :${IMAGE_TAG_COMMIT} "
3234
3335# Allow an override for the base image used in the Docker build.
3436BASE_IMAGE_ARG=${BASE_IMAGE:- ghcr.io/ nhsdigital/ nhs-notify/ letter-renderer-node-22: latest}
@@ -37,8 +39,12 @@ BASE_IMAGE_ARG=${BASE_IMAGE:-ghcr.io/nhsdigital/nhs-notify/letter-renderer-node-
3739docker build \
3840 -f docker/lambda/Dockerfile \
3941 --build-arg BASE_IMAGE=" ${BASE_IMAGE_ARG} " \
40- -t " ${ECR_IMAGE } " \
42+ -t " ${ECR_IMAGE_LATEST } " \
4143 .
4244
43- # Push the image to ECR.
44- docker push " ${ECR_IMAGE} "
45+ # Apply additional tag containing the commit identifier.
46+ docker tag " ${ECR_IMAGE_LATEST} " " ${ECR_IMAGE_COMMIT} "
47+
48+ # Push the image tags to ECR.
49+ docker push " ${ECR_IMAGE_LATEST} "
50+ docker push " ${ECR_IMAGE_COMMIT} "
0 commit comments