@@ -2,7 +2,7 @@ name: Build and push docker image
22' on ' :
33 workflow_call :
44 inputs :
5- publish_image :
5+ tag_latest :
66 required : true
77 type : boolean
88 docker_tag :
6363 ARCHITECTURE : ' ${{ matrix.arch }}'
6464 DOCKER_TAG : ' ${{ inputs.docker_tag }}'
6565 CONTAINER_NAME : ' ${{ inputs.container_name }}'
66+ BASE_VERSION : ${{ inputs.docker_tag}}
6667 - uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
6768 name : Upload docker images
6869 with :
@@ -114,7 +115,6 @@ jobs:
114115 publish_image :
115116 needs : build_image
116117 runs-on : ubuntu-22.04
117- if : ${{ inputs.publish_image }}
118118 permissions :
119119 contents : read
120120 packages : write
@@ -150,33 +150,44 @@ jobs:
150150 username : ${{github.actor}}
151151 password : ${{secrets.GITHUB_TOKEN}}
152152
153-
154- - name : Load and push multi-arch image
153+ - name : Load and push multi-arch tagged image
155154 run : |
156155 echo "loading images"
157156 docker load -i "eps-devcontainer-${CONTAINER_NAME}-${DOCKER_TAG}-amd64.img"
158157 docker load -i "eps-devcontainer-${CONTAINER_NAME}-${DOCKER_TAG}-arm64.img"
159158
159+ echo "pushing images"
160+ docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-amd64"
161+ docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-arm64"
162+
163+ echo "creating manifest"
164+ docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}" \
165+ --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-amd64" \
166+ --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-arm64"
167+
168+ echo "pushing manifest"
169+ docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}"
170+ env :
171+ DOCKER_TAG : ${{ inputs.docker_tag }}
172+ CONTAINER_NAME : ' ${{ inputs.container_name }}'
173+
174+ - name : Load and push multi-arch latest image
175+ if : ${{ inputs.tag_latest }}
176+ run : |
160177 echo "Tagging latest images"
161178 docker tag "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-amd64" "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest-amd64"
162179 docker tag "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-arm64" "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest-arm64"
163180
164181 echo "pushing images"
165- docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-amd64"
166- docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-arm64"
167182 docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest-amd64"
168183 docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest-arm64"
169184
170185 echo "creating manifest"
171- docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}" \
172- --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-amd64" \
173- --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-arm64"
174186 docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest" \
175187 --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest-amd64" \
176188 --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest-arm64"
177189
178190 echo "pushing manifest"
179- docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}"
180191 docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest"
181192 env :
182193 DOCKER_TAG : ${{ inputs.docker_tag }}
0 commit comments