|
18 | 18 | env: |
19 | 19 | TRY_MIRRORS: "" |
20 | 20 | PUBLIC_MIRROR: "https://dl-cdn.alpinelinux.org" # no mirror needed at github actions |
21 | | - IMAGE_NAME: php-dockerfile # only used for default local image name |
22 | 21 |
|
23 | 22 | jobs: |
24 | 23 | prepare: |
|
93 | 92 | if "${{ secrets.AWS_ECR_CRED }}": |
94 | 93 | images.append("${{ inputs.awsEcrImageName }}" or "public.ecr.aws/${{ github.repository }}") |
95 | 94 |
|
96 | | - serialized = json.dumps(images) |
97 | | - githubOutput.write(f"images={serialized}\n") |
| 95 | + imagesString = " ".join(images) |
| 96 | + githubOutput.write(f"images={imagesString}\n") |
98 | 97 |
|
99 | 98 | githubOutput.close() |
100 | 99 |
|
@@ -171,47 +170,20 @@ jobs: |
171 | 170 | shell: bash |
172 | 171 | id: build |
173 | 172 | run: | |
174 | | - GITHUB_TOKEN="${{ github.token }}" ./build.py "${{ matrix.tag }}" |
175 | | -
|
176 | | - # push single arch image |
177 | | - if [ "$(uname -m)" = "x86_64" ]; then |
178 | | - DOCKER_ARCH="amd64" |
179 | | - elif [ "$(uname -m)" = "aarch64" ]; then |
180 | | - DOCKER_ARCH="arm64" |
181 | | - else |
182 | | - echo "unknown architecture: $(uname -m)" |
183 | | - exit 1 |
184 | | - fi |
185 | | -
|
186 | | - IMAGE="${{ inputs.ghcrImageName || format('ghcr.io/{0}', github.repository) }}" |
187 | | - docker tag "${IMAGE_NAME}:${{ matrix.tag }}" "${IMAGE}:${{ matrix.tag }}-${DOCKER_ARCH}" |
188 | | - docker tag "${IMAGE_NAME}:${{ matrix.tag }}-debuggable" "${IMAGE}:${{ matrix.tag }}-debuggable-${DOCKER_ARCH}" |
189 | | - docker push "${IMAGE}:${{ matrix.tag }}-${DOCKER_ARCH}" |
190 | | - docker push "${IMAGE}:${{ matrix.tag }}-debuggable-${DOCKER_ARCH}" |
191 | | -
|
192 | | - digest=$(docker inspect "${IMAGE}:${{ matrix.tag }}-${DOCKER_ARCH}" | jq -r '.[0].RepoDigests[0]') |
193 | | - digest="${digest#*@}" |
| 173 | + GITHUB_TOKEN="${{ github.token }}" \ |
| 174 | + ./build.py "${{ matrix.tag }}" \ |
| 175 | + ${{ needs.prepare.outputs.images }} \ |
| 176 | + --oci \ |
| 177 | + --arch-suffix \ |
| 178 | + --gen-metadata \ |
| 179 | + --push |
| 180 | +
|
| 181 | + digest=$(jq -r '.[0].RepoDigests[0]' metadata_stripped.json) |
194 | 182 | echo "stripped_digest=${digest}" >> "${GITHUB_OUTPUT}" |
195 | 183 |
|
196 | | - digest=$(docker inspect "${IMAGE}:${{ matrix.tag }}-debuggable-${DOCKER_ARCH}" | jq -r '.[0].RepoDigests[0]') |
197 | | - digest="${digest#*@}" |
| 184 | + digest=$(jq -r '.[0].RepoDigests[0]' metadata_debuggable.json) |
198 | 185 | echo "debuggable_digest=${digest}" >> "${GITHUB_OUTPUT}" |
199 | 186 |
|
200 | | - if [ -n "${{ steps.set-secrets.outputs.has_dockerhub }}" ]; then |
201 | | - IMAGE="${{ inputs.ghcrImageName || format('index.docker.io/{0}', github.repository) }}" |
202 | | - docker tag "${IMAGE_NAME}:${{ matrix.tag }}" "${IMAGE}:${{ matrix.tag }}-${DOCKER_ARCH}" |
203 | | - docker tag "${IMAGE_NAME}:${{ matrix.tag }}-debuggable" "${IMAGE}:${{ matrix.tag }}-debuggable-${DOCKER_ARCH}" |
204 | | - docker push "${IMAGE}:${{ matrix.tag }}-${DOCKER_ARCH}" |
205 | | - docker push "${IMAGE}:${{ matrix.tag }}-debuggable-${DOCKER_ARCH}" |
206 | | - fi |
207 | | - if [ -n "${{ steps.set-secrets.outputs.has_aws_ecr }}" ]; then |
208 | | - IMAGE="${{ inputs.awsEcrImageName || format('public.ecr.aws/{0}', github.repository) }}" |
209 | | - docker tag "${IMAGE_NAME}:${{ matrix.tag }}" "${IMAGE}:${{ matrix.tag }}-${DOCKER_ARCH}" |
210 | | - docker tag "${IMAGE_NAME}:${{ matrix.tag }}-debuggable" "${IMAGE}:${{ matrix.tag }}-debuggable-${DOCKER_ARCH}" |
211 | | - docker push "${IMAGE}:${{ matrix.tag }}-${DOCKER_ARCH}" |
212 | | - docker push "${IMAGE}:${{ matrix.tag }}-debuggable-${DOCKER_ARCH}" |
213 | | - fi |
214 | | -
|
215 | 187 | - name: Generate provenance attestation for stripped image at ghcr.io |
216 | 188 | uses: actions/attest-build-provenance@v2 |
217 | 189 | id: attest-stripped-ghcr |
@@ -270,6 +242,6 @@ jobs: |
270 | 242 | run: | |
271 | 243 | ./.github/workflows/mergeimages.py \ |
272 | 244 | '${{ matrix.tag }}' \ |
273 | | - '${{ needs.prepare.outputs.images }}' \ |
274 | 245 | '${{ steps.build.outputs.stripped_digest }}' \ |
275 | | - '${{ steps.build.outputs.debuggable_digest }}' |
| 246 | + '${{ steps.build.outputs.debuggable_digest }}' \ |
| 247 | + ${{ needs.prepare.outputs.images }} |
0 commit comments