Skip to content

ci: attest release artifacts with actions/attest#2418

Merged
dunglas merged 1 commit into
mainfrom
attest-builds
May 14, 2026
Merged

ci: attest release artifacts with actions/attest#2418
dunglas merged 1 commit into
mainfrom
attest-builds

Conversation

@dunglas
Copy link
Copy Markdown
Member

@dunglas dunglas commented May 14, 2026

Summary

Generate SLSA build-provenance attestations for every released artifact via actions/attest@v4 (the recommended action that auto-fills the SLSA v1 predicate when no custom predicate is supplied).

  • static.yaml: switch the three existing actions/attest-build-provenance@v4 calls to actions/attest@v4 and add the new artifact-metadata: write permission required by v4.
  • windows.yaml: attest the released frankenphp-windows-x86_64.zip.
  • docker.yaml: attest each pushed manifest list (builder + runner per variant) by digest, pushing the attestation to the registry alongside the image so consumers can run gh attestation verify oci://docker.io/dunglas/frankenphp@sha256:... --owner php.

Verifying after merge

gh attestation verify ./frankenphp-linux-x86_64-gnu --owner php
gh attestation verify ./frankenphp-windows-x86_64.zip --owner php
gh attestation verify oci://docker.io/dunglas/frankenphp@sha256:<digest> --owner php

Generate SLSA build-provenance attestations for every released
artifact via actions/attest@v4 (the recommended action that
auto-fills the SLSA v1 predicate).

- static.yaml: switch the three existing attest-build-provenance
  calls to actions/attest and add the artifact-metadata:write
  permission required by v4.
- windows.yaml: attest the released frankenphp-windows-x86_64.zip.
- docker.yaml: attest each pushed manifest list (builder + runner
  per variant) by digest, pushing the attestation to the registry.
Copilot AI review requested due to automatic review settings May 14, 2026 14:15
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds SLSA build-provenance attestations to release artifacts produced by the static, Windows, and Docker workflows by switching from actions/attest-build-provenance@v4 to the more generic actions/attest@v4, and attaching attestations to pushed Docker manifest lists by digest.

Changes:

  • Replace actions/attest-build-provenance@v4 with actions/attest@v4 in static builds and add a new artifact-metadata: write permission to all attesting jobs.
  • Attest the Windows release zip (frankenphp-windows-x86_64.zip) when a release ref is set.
  • In the Docker workflow, capture the manifest digest for each pushed image and create a registry-attached attestation via actions/attest@v4 with push-to-registry: true.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
.github/workflows/static.yaml Switches three attestation steps to actions/attest@v4 and grants the new artifact-metadata: write permission.
.github/workflows/windows.yaml Adds id-token/attestations/artifact-metadata permissions and an attestation step for the released Windows zip.
.github/workflows/docker.yaml Captures image name + digest from imagetools inspect and attests each pushed manifest with push-to-registry: true.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/static.yaml
Comment thread .github/workflows/docker.yaml
@dunglas dunglas merged commit 138b6f4 into main May 14, 2026
93 of 97 checks passed
@dunglas dunglas deleted the attest-builds branch May 14, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants