Skip to content

Build SCADA images on native architecture runners - #3

Merged
NellInc merged 3 commits into
mainfrom
codex/v040-native-multiarch
Aug 4, 2026
Merged

NellInc merged 3 commits into
mainfrom
codex/v040-native-multiarch

Conversation

@NellInc

@NellInc NellInc commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Cause

Both tag publication attempts failed while executing ARM64 npm ci under QEMU. Node 20 and Node 22 each terminated with signal 4. The PR build passed once, confirming the fault is nondeterministic emulation rather than TypeScript or Dockerfile correctness.

Fix

  • replace same-runner QEMU emulation with Docker's official distributed multi-platform reusable workflow
  • route linux/amd64 to an x64 GitHub runner and linux/arm64 to the native ubuntu-24.04-arm runner
  • retain GHCR metadata tags, package permissions, build caching, multi-platform output, and Trivy SARIF upload
  • add SBOM and OCI annotations to the published manifest

Docker documents this reusable workflow as the native distributed path for multi-platform builds: https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners

GitHub lists ubuntu-24.04-arm as a standard hosted ARM64 runner for public repositories: https://docs.github.com/en/actions/reference/runners/github-hosted-runners

Validation

  • actionlint .github/workflows/*.yml
  • git diff --check
  • previous isolated native ARM64 Docker build passed with the same Node 22 Dockerfile
  • no tracked blobs exceed 50 MiB

The PR workflow itself is the architecture-level acceptance test: both native platform jobs and finalization must pass before merge.

@NellInc
NellInc merged commit 6c8e1c3 into main Aug 4, 2026
10 checks passed
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.

1 participant