Skip to content

feat(docker): Add multi-platform support for Docker build - #541

Merged
gondoi merged 6 commits into
mainfrom
feature/devops-1248-enable-multi-arch-build-containers-group-1
Aug 28, 2026
Merged

feat(docker): Add multi-platform support for Docker build#541
gondoi merged 6 commits into
mainfrom
feature/devops-1248-enable-multi-arch-build-containers-group-1

Conversation

@gondoi

@gondoi gondoi commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@cursor

cursor Bot commented Apr 20, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Changes how production container images are built and published, including a reusable workflow pinned to @master and multi-arch native builds; misconfiguration could break releases or produce wrong-platform images.

Overview
Replaces the in-repo docker-publish composite action with the shared FuelLabs/github-actions docker-build-push reusable workflow, and drops the local .github/actions/docker-publish action.

sv-dune is now built and pushed for linux/amd64 and linux/arm64 using build-backend: native (separate ubuntu-latest / ubuntu-24.04-arm runners) instead of a single matrix job that called the local action. The workflow adds id-token: write, documents why matrix + workflow_call + job if on matrix.* is avoided, and keeps the same dispatch/package filtering and ghcr tagging (branch, sha, semver).

Reviewed by Cursor Bugbot for commit d9ed7c5. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread .github/actions/docker-publish/action.yaml Outdated
Comment thread .github/actions/docker-publish/action.yaml Outdated
Comment thread .github/actions/docker-publish/action.yaml Outdated
Comment thread .github/workflows/docker_publish.yaml Outdated
Migrate docker-publish to FuelLabs/github-actions docker-build-push
with build-backend native and linux/amd64,linux/arm64 on native runners.

Refs DEVOPS-1248

Co-authored-by: Cursor <cursoragent@cursor.com>
@gondoi
gondoi force-pushed the feature/devops-1248-enable-multi-arch-build-containers-group-1 branch from 3d168e2 to 32b28ca Compare May 27, 2026 15:27
gondoi and others added 3 commits May 27, 2026 10:28
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread .github/workflows/docker_publish.yaml
The workflow now calls FuelLabs/github-actions docker-build-push; the
composite under .github/actions/docker-publish had no remaining references.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gondoi gondoi closed this Aug 26, 2026
@gondoi gondoi reopened this Aug 26, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e4b3918. Configure here.

Comment thread .github/workflows/docker_publish.yaml
ironcev
ironcev previously approved these changes Aug 27, 2026
@gondoi

gondoi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

Reviewed Bugbot's 4 findings on this PR — all anchored to commits (09dfbca5, 12c1ef02, f539c2e1) that predate the final rewrite (e4b3918), which deletes the local composite action entirely and replaces the matrix-based job with one job per package using an explicit if (avoiding matrix.* in a reusable-workflow job-level if, which is exactly what the "Matrix context unavailable" finding warned about — already addressed, and the workflow even has a comment calling this out). imageid/QEMU/duplicate-platforms findings targeted the pre-rewrite composite action, which no longer exists. All 4 stale. No code changes needed.

docker-build-push.yml's jobs unconditionally request id-token: write
at the job level; a reusable-workflow caller that doesn't grant it
caps that scope down regardless of what the nested job asks for.
This repo's auth-mode (registry-login) + build-backend native's
digest-push path (provenance: false) don't appear to actually need
an OIDC token today, but every other FuelLabs repo on this same
migration grants it defensively (prometheus-exporter, fuel-mcp-server,
sway-playground, faucet, ...) and this workflow has no pull_request
trigger, so it's never actually exercised by PR CI to prove otherwise.
Match the established pattern rather than rely on that argument.

Flagged by Cursor Bugbot.
@gondoi

gondoi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

Correction to my earlier comment: I lumped this finding in with the other 3 as "stale," but its `original_commit_id` is `e4b3918` — the actual HEAD, not a superseded intermediate commit. That was my mistake, not bugbot's.

On the substance: `auth-mode: registry-login` skips the OIDC/ECR-login steps in the shared composite entirely, and `build-backend: native` always hits the digest-push variant, which sets `provenance: false` — so nothing in the actual execution path calls for an OIDC token today. But I can't verify that by watching it run: this workflow has no `pull_request` trigger, so it's never exercised by this PR's CI. Every other repo on this migration using `registry-login` (prometheus-exporter, fuel-mcp-server, sway-playground, faucet) grants `id-token: write` anyway and all built green — this was the one outlier. Added it to match, rather than lean on an argument I can't test.

@gondoi
gondoi enabled auto-merge (squash) August 27, 2026 21:14
@gondoi
gondoi merged commit 7c8d2f1 into main Aug 28, 2026
11 of 12 checks passed
@gondoi
gondoi deleted the feature/devops-1248-enable-multi-arch-build-containers-group-1 branch August 28, 2026 05:24
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