Skip to content

Scripts and tools: test Dockerfile on linux/amd64 and linux/arm64#1834

Open
TaprootFreak wants to merge 2 commits into
firoorg:masterfrom
DFXswiss:feat/multi-arch-dockerfile-test
Open

Scripts and tools: test Dockerfile on linux/amd64 and linux/arm64#1834
TaprootFreak wants to merge 2 commits into
firoorg:masterfrom
DFXswiss:feat/multi-arch-dockerfile-test

Conversation

@TaprootFreak
Copy link
Copy Markdown

@TaprootFreak TaprootFreak commented May 4, 2026

User description

Summary

Extends the existing Dockerfile build test to a buildx matrix covering both linux/amd64 and linux/arm64.

Why

The Dockerfile already cross-builds for the host architecture via the depends/ system — uname -m resolves to x86_64-linux-gnu or aarch64-linux-gnu, both of which are listed in the depends/ Makefile. The single-platform CI test masks any future change that would silently break arm64 (Apple Silicon hosts, AWS Graviton, Raspberry Pi 4/5).

Change

  • .github/workflows/test-dockerfile.yml: matrix on [linux/amd64, linux/arm64], builds via docker buildx on ubuntu-latest. arm64 leg uses QEMU.
  • Path filter widened to also re-trigger when depends/** or the workflow file itself changes.

Test plan

  • PR CI run shows both matrix entries (linux/amd64, linux/arm64) green
  • Run completes within reasonable time (arm64 via QEMU is slower; can be revisited with ubuntu-24.04-arm runners later)

CodeAnt-AI Description

Test the Dockerfile on both amd64 and arm64

What Changed

  • The Dockerfile check now runs for both linux/amd64 and linux/arm64
  • Apple Silicon, Raspberry Pi, and other arm64 builds are now covered in PR checks
  • The check also runs when files under depends/ change, not just the Dockerfile itself
  • The arm64 test uses a pinned QEMU image, reducing the risk of a broken or tampered CI dependency

Impact

✅ Fewer arm64 build regressions
✅ Safer Dockerfile checks in CI
✅ Earlier detection of dependency-related build failures

🔄 Retrigger CodeAnt AI Review

Details

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

The Dockerfile already cross-builds for the host architecture via the
depends/ system (uname -m -> {x86_64,aarch64}-linux-gnu). This extends
the existing single-platform Dockerfile test to a buildx matrix that
verifies both linux/amd64 and linux/arm64 build cleanly on every PR
that touches Dockerfile or depends/, so an arm64 regression cannot
slip in unnoticed.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 4, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • .github/workflows/test-dockerfile.yml is excluded by !**/*.yml

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 47243376-b5ef-4165-a8e4-3667ac55a845

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@TaprootFreak TaprootFreak marked this pull request as ready for review May 4, 2026 17:45
@navidR
Copy link
Copy Markdown
Contributor

navidR commented May 5, 2026

Can you pin the image:


- name: Set up QEMU
  uses: docker/setup-qemu-action@v3
  with:
    image: tonistiigi/binfmt:latest@sha256:<real-digest>
    platforms: arm64

Pin tonistiigi/binfmt to its current manifest digest to prevent
supply-chain attacks via a compromised :latest tag.

refs firoorg#1834
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 5, 2026

CodeAnt AI is reviewing your PR.

@codeant-ai codeant-ai Bot added the size:S This PR changes 10-29 lines, ignoring generated files label May 5, 2026
@TaprootFreak
Copy link
Copy Markdown
Author

Done — pinned tonistiigi/binfmt to its current multi-arch manifest digest (sha256:d3b963f787999e6c0219a48dba02978769286ff61a5f4d26245cb6a6e5567ea3) in 58d436b.

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 5, 2026

CodeAnt AI finished reviewing your PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants