@@ -8,9 +8,9 @@ name: Build and push docker image
88 docker_tag :
99 required : true
1010 type : string
11- secrets :
12- EPS_REPO_STATUS_PEM :
11+ container_name :
1312 required : true
13+ type : string
1414
1515jobs :
1616 build_image :
@@ -48,40 +48,32 @@ jobs:
4848 uses : actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
4949 with :
5050 node-version-file : .tool-versions
51- - name : Generate a token to get details from other repositories
52- id : generate-token
53- uses : actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf
54- with :
55- app-id : ${{ vars.EPS_REPO_STATUS_APP_ID }}
56- private-key : ${{ secrets.EPS_REPO_STATUS_PEM }}
57- owner : " NHSDigital"
5851
5952 - name : make install
6053 run : |
6154 make install-node
6255 - name : Build container
6356 run : >
64- make build-base- image
57+ make build-image
6558
66- docker tag ghcr.io/nhsdigital/eps-devcontainer-base :latest "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-${ARCHITECTURE}"
59+ docker tag " ghcr.io/nhsdigital/eps-devcontainers-${CONTAINER_NAME} :latest" "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :${DOCKER_TAG}-${ARCHITECTURE}"
6760
68- docker save "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-${ARCHITECTURE}" -o "eps-devcontainer-base -${DOCKER_TAG}-${ARCHITECTURE}.img"
61+ docker save "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :${DOCKER_TAG}-${ARCHITECTURE}" -o "eps-devcontainer-${CONTAINER_NAME} -${DOCKER_TAG}-${ARCHITECTURE}.img"
6962 env :
70- GH_TOKEN : ${{ steps.generate-token.outputs.token }}
7163 ARCHITECTURE : ' ${{ matrix.arch }}'
7264 DOCKER_TAG : ' ${{ inputs.docker_tag }}'
73- GITHUB_TOKEN : ${{ steps.generate-token.outputs.token }}
65+ CONTAINER_NAME : ' ${{ inputs.container_name }}'
7466 - uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
7567 name : Upload docker images
7668 with :
77- name : " eps-devcontainer-base -${{ inputs.docker_tag }}-${{ matrix.arch }}.img"
69+ name : " eps-devcontainer-${{ inputs.container_name }} -${{ inputs.docker_tag }}-${{ matrix.arch }}.img"
7870 path : |
79- eps-devcontainer-base -${{ inputs.docker_tag }}-${{ matrix.arch }}.img
71+ eps-devcontainer-${{ inputs.container_name }} -${{ inputs.docker_tag }}-${{ matrix.arch }}.img
8072 - name : Check docker vulnerabilities - json output
8173 uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
8274 with :
8375 scan-type : " image"
84- image-ref : " ghcr.io/nhsdigital/eps-devcontainers/base :${{ inputs.docker_tag }}-${{ matrix.arch }}"
76+ image-ref : " ghcr.io/nhsdigital/eps-devcontainers/${{ inputs.container_name }} :${{ inputs.docker_tag }}-${{ matrix.arch }}"
8577 severity : " CRITICAL,HIGH"
8678 scanners : " vuln"
8779 vuln-type : " os,library"
9991 uses : aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
10092 with :
10193 scan-type : " image"
102- image-ref : " ghcr.io/nhsdigital/eps-devcontainers/base :${{ inputs.docker_tag }}-${{ matrix.arch }}"
94+ image-ref : " ghcr.io/nhsdigital/eps-devcontainers/${{ inputs.container_name }} :${{ inputs.docker_tag }}-${{ matrix.arch }}"
10395 severity : " CRITICAL,HIGH"
10496 scanners : " vuln"
10597 vuln-type : " os,library"
@@ -146,11 +138,11 @@ jobs:
146138 - name : Download amd64 images
147139 uses : actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
148140 with :
149- name : eps-devcontainer-base -${{ inputs.docker_tag }}-amd64.img
141+ name : eps-devcontainer-${{ inputs.container_name }} -${{ inputs.docker_tag }}-amd64.img
150142 - name : Download arm64 images
151143 uses : actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
152144 with :
153- name : eps-devcontainer-base -${{ inputs.docker_tag }}-arm64.img
145+ name : eps-devcontainer-${{ inputs.container_name }} -${{ inputs.docker_tag }}-arm64.img
154146 - name : Login to github container registry
155147 uses : docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
156148 with :
@@ -162,29 +154,30 @@ jobs:
162154 - name : Load and push multi-arch image
163155 run : |
164156 echo "loading images"
165- docker load -i "eps-devcontainer-base -${DOCKER_TAG}-amd64.img"
166- docker load -i "eps-devcontainer-base -${DOCKER_TAG}-arm64.img"
157+ docker load -i "eps-devcontainer-${CONTAINER_NAME} -${DOCKER_TAG}-amd64.img"
158+ docker load -i "eps-devcontainer-${CONTAINER_NAME} -${DOCKER_TAG}-arm64.img"
167159
168160 echo "Tagging latest images"
169- docker tag "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-amd64" "ghcr.io/nhsdigital/eps-devcontainers/base :latest-amd64"
170- docker tag "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-arm64" "ghcr.io/nhsdigital/eps-devcontainers/base :latest-arm64"
161+ docker tag "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :${DOCKER_TAG}-amd64" "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest-amd64"
162+ docker tag "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :${DOCKER_TAG}-arm64" "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest-arm64"
171163
172164 echo "pushing images"
173- docker push "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-amd64"
174- docker push "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-arm64"
175- docker push "ghcr.io/nhsdigital/eps-devcontainers/base :latest-amd64"
176- docker push "ghcr.io/nhsdigital/eps-devcontainers/base :latest-arm64"
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"
167+ docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest-amd64"
168+ docker push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest-arm64"
177169
178170 echo "creating manifest"
179- docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}" \
180- --amend "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-amd64" \
181- --amend "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}-arm64"
182- docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/base :latest" \
183- --amend "ghcr.io/nhsdigital/eps-devcontainers/base :latest-amd64" \
184- --amend "ghcr.io/nhsdigital/eps-devcontainers/base :latest-arm64"
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"
174+ docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest" \
175+ --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest-amd64" \
176+ --amend "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest-arm64"
185177
186178 echo "pushing manifest"
187- docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/base :${DOCKER_TAG}"
188- docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/base :latest"
179+ docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :${DOCKER_TAG}"
180+ docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME} :latest"
189181 env :
190182 DOCKER_TAG : ${{ inputs.docker_tag }}
183+ CONTAINER_NAME : ' ${{ inputs.container_name }}'
0 commit comments