Skip to content

Conversation

@disassembler
Copy link
Contributor

@disassembler disassembler commented Nov 22, 2025

Description

This PR improves support for multiple arches in the following ways:

  • Adds aarch64-linux nix packages, including musl static and OCI tarball generation package variants
  • Bumps GHC from 9.6.6 -> 9.6.7 as well as the cardano-automation flake input for aarch64-linux support
  • Updates the release-ghcr GHA workflow to produce linux multi-arch manifest OCI and corresponding release images which auto-resolve on container pull to the appropriate arch (amd64 or arm64)
  • Updates the release-upload GHA workflow to produce new linux and darwin aarch64 artifacts
  • Produces new OCI/goarch standard name aligned default OCI images of the form:
# $PKG = cardano-node, cardano-tracer, cardano-submit-api:
ghcr.io/intersectmbo/$PKG:$VERSION        # <--- multi-arch manifest
ghcr.io/intersectmbo/$PKG:$VERSION-amd64
ghcr.io/intersectmbo/$PKG:$VERSION-arm64
  • Produces updated binary artifact names aligned with the above OCI/goarch name form:
cardano-node-$VERSION-linux-amd64.tar.gz
cardano-node-$VERSION-linux-arm64.tar.gz
cardano-node-$VERSION-macos-amd64.tar.gz
cardano-node-$VERSION-macos-arm64.tar.gz
cardano-node-$VERSION-win-amd64.zip
  • Hydra PR vs master impact: eval is the same at ~17 mins, jobs increase +104
  • Example release-ghcr action here
  • Example release-upload action here

Checklist

  • Commit sequence broadly makes sense and commits have useful messages
  • New tests are added if needed and existing tests are updated: new hydra ciJob packages, checks
  • CI passes
  • Self-reviewed the diff

@disassembler disassembler requested review from a team as code owners November 22, 2025 17:12
@TheStophe
Copy link

Yes please!

@rphair
Copy link

rphair commented Nov 23, 2025

Thanks @disassembler for the quick & cooperative response when we presented this on the IOG SPO Discord channel earlier today. I can personally confirm that ARM binary assets for cardano-node would have helped a number of stake pools respond more quickly to this week's emergency.

@wolf31o2
Copy link

ARM64v8 Docker images would be nice, too.

@adrem1
Copy link

adrem1 commented Nov 23, 2025

@disassembler thank you for this. As we discussed during the incident, lots of folks run node on ARM. Armada Alliance has been doing a great job at compiling and distributing those binaries, but as @rphair already pointed out, in this case it would have helped greatly to have the binaries already here.

Here's to hoping it will happen at some point🍻

Copy link
Contributor

@angerman angerman left a comment

Choose a reason for hiding this comment

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

Yes, please!

We should also merge #5628 alongside this.

@OYSTERPOOL
Copy link

This would be lovely! There quite a number of us running ARM nodes and it would enable us to respond much quicker during future incidents.

@johnalotoski johnalotoski marked this pull request as draft November 26, 2025 19:36
@johnalotoski johnalotoski force-pushed the add-aarch64-support branch 6 times, most recently from aae0d71 to bf69b13 Compare December 3, 2025 19:23
@johnalotoski johnalotoski requested a review from angerman December 3, 2025 20:08
@johnalotoski johnalotoski marked this pull request as ready for review December 3, 2025 20:57
Copilot AI review requested due to automatic review settings December 3, 2025 20:57
Copy link

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

This PR adds comprehensive aarch64-linux support to cardano-node releases, modernizing the build and release infrastructure to support multiple architectures. The changes include:

  • GHC compiler bump from 9.6.6 to 9.6.7
  • Addition of aarch64-linux to supported systems
  • Updated GitHub Actions workflows to build and release multi-arch artifacts

Reviewed changes

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

Show a summary per file
File Description
nix/supported-systems.nix Adds aarch64-linux to the list of supported build systems
nix/haskell.nix Bumps GHC compiler version from 9.6.6 to 9.6.7
nix/binary-release.nix Updates platform naming from "win64" to "win" for consistency
flake.nix Extends system checks to include aarch64-linux, adds musl cross-compilation logic for aarch64, and updates windows build configuration with unreachable code
flake.lock Updates cardano-automation flake input and adds hackageNix dependency
.github/workflows/release-upload.yaml Expands build matrix to include linux-amd64, linux-arm64, macos-amd64, macos-arm64, and win-amd64; updates artifact naming to align with OCI/goarch standards
.github/workflows/release-ghcr.yaml Restructures workflow to build individual arch images and create multi-arch manifests for cardano-node, cardano-submit-api, and cardano-tracer

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

Copy link
Contributor

@angerman angerman left a comment

Choose a reason for hiding this comment

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

Looks sensible.

The only one I'm a bit cautious about is ucrtAarch64; I don't think we have good hardware to test this on (yet!).

@johnalotoski
Copy link
Contributor

Looks sensible.

The only one I'm a bit cautious about is ucrtAarch64; I don't think we have good hardware to test this on (yet!).

👍

Also, I did go ahead and convert that ucrtAarch64 case for win-arm64 to a comment since it is currently prevented from building with the optionalAttrs bool condition in front of it and it won't build ATM due to a broken upstream dependency.

Will keep an eye on it for adding it back in the future.

@johnalotoski johnalotoski added this pull request to the merge queue Dec 8, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Dec 8, 2025
@johnalotoski johnalotoski added this pull request to the merge queue Dec 8, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Dec 8, 2025
@johnalotoski johnalotoski added this pull request to the merge queue Dec 9, 2025
github-merge-queue bot pushed a commit that referenced this pull request Dec 9, 2025
aarch64 support for cardano-node releases
@johnalotoski johnalotoski removed this pull request from the merge queue due to a manual request Dec 9, 2025
@johnalotoski johnalotoski added this pull request to the merge queue Dec 9, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Dec 9, 2025
@johnalotoski johnalotoski added this pull request to the merge queue Dec 9, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Dec 9, 2025
@johnalotoski johnalotoski added this pull request to the merge queue Dec 10, 2025
Merged via the queue into master with commit 52d8ba2 Dec 10, 2025
33 checks passed
@johnalotoski johnalotoski deleted the add-aarch64-support branch December 10, 2025 04:48
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.

10 participants