Skip to content

Build Linux ARM binaries in the CI #2178

@jpraynaud

Description

@jpraynaud

Why

We want to provide pre-built binaries for Linux ARM in our GitHub releases.

This is a feature requested by the community (discord) and which follows-up with the issue #1751.

Important

Based on current usages of the CI, we evaluate that ~100,000 minutes will be needed for 12 months of a similar usage of the CI that we had for the last 12 months. We would need 5 ARM runners of type Linux 2-core or Linux 4-core We can use the ubuntu-24.04-arm runner available in public preview.

What

Update the CI to create a Linux ARM binary for the signer, clients and aggregator (if possible).

How

  • Evaluate impact on the CI:
    • build times (see the results in the table in the comment below):
      • without cache
      • with cache
    • test times (see the results in the table in the comment below):
      • without cache
      • with cache
    • e2e tests if applicable
  • Update the CI to use a Linux ARM runner (see):
    • signer
    • client
    • aggregator
    • relay
    • e2e tests if possible?
    • Create a platform support matrix - Mithril node vs platform - in the release note
    • Mention that the builds are not 'guaranteed' or 'use at own risk' in the release note
  • Update the manual workflows in GitHub actions to test arm builds
  • Update the pre release workflow in the CI
  • Provide Docker images for ARM:
    • signer
    • client
    • aggregator
    • Update the release notes with a platform support table
  • Deactivate the command tools utxo-hd snapshot converter in the client CLI for the Linux ARM platform
  • Do not display the message at the end of a download explaining how to restart a Cardano node and how to convert a ledger state snapshot

Later

  • How can we run the e2e tests in ARM without an ARM version of the Cardano distribution?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions