-
Notifications
You must be signed in to change notification settings - Fork 30
feat(ci): use multiple runners for build #508
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the GitHub Actions build workflow to use a matrix strategy for multi-architecture Docker builds, enabling parallel builds for different architectures (linux/amd64, linux/arm64, linux/arm/v7) on dedicated runners. The changes introduce a separate manifest job to aggregate per-architecture builds and handle image signing, attestation, and verification centrally.
- Split build process into per-architecture matrix builds and a manifest aggregation job
- Enhanced security with centralized image signing, attestation, and verification using Cosign
- Updated downstream workflows to reference outputs from the manifest job instead of build job
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|



This pull request makes significant improvements to the GitHub Actions workflow for building and publishing Docker images. The main changes include refactoring the build process to use a matrix strategy for multi-architecture builds, introducing a separate manifest job for aggregating per-architecture images, and enhancing image signing and attestation for better security and provenance. Additionally, downstream workflows now correctly reference the manifest job outputs for image digests and versions.
Workflow refactor and multi-arch support:
buildjob now uses a matrix strategy to build images for multiple architectures (linux/amd64,linux/arm64,linux/arm/v7), each on dedicated runners. This enables true multi-arch support and parallelizes the build process. (.github/workflows/build.yml, .github/workflows/build.ymlR17-R40)manifestjob aggregates the digests from all architecture builds, creates and pushes a multi-arch manifest list, and handles signing and attestation centrally. (.github/workflows/build.yml, .github/workflows/build.ymlL38-R263)Image signing and provenance:
manifestjob, using Cosign and GitHub OIDC for secure signatures and provenance attestation. This ensures all published images and manifests are cryptographically verifiable. (.github/workflows/build.yml, .github/workflows/build.ymlL38-R263)Downstream workflow output updates:
argocdandhelm-chartjobs now reference outputs from themanifestjob (instead of thebuildjob) for image digests and versions, ensuring deployments use the correct multi-arch manifest information. (.github/workflows/build.yml, .github/workflows/build.ymlL121-R306)General workflow improvements:
attestations: writeare added to enable build provenance attestation. (.github/workflows/build.yml, .github/workflows/build.ymlR17-R40).github/workflows/build.yml, .github/workflows/build.ymlL38-R263)