Skip to content

ci: add ubuntu-24.04-arm runner to workflows #1922

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

vkprogrammer-001
Copy link

Changes

  • Added ubuntu-24.04-arm runner to CI matrix for ARM64 architecture support
  • Modified test execution to exclude electrs-dependent tests on ARM runners:
    • bdk_electrum
    • bdk_bitcoind_rpc
    • bdk_testenv
    • bdk_esplora
  • Updated example builds to skip electrum-dependent examples on ARM

Rationale

This change enables CI testing on ARM64 architecture (e.g., AWS Graviton servers) while handling the architecture mismatch with the electrs binary. The electrs binary is currently only available for x86_64, causing "Exec format error (os error 8)" when attempting to run on ARM.

Future Improvements

While this solution enables CI to pass on ARM, it's a temporary workaround. Long-term improvements could include:

  1. Cross-compiling electrs for ARM64
  2. Refactoring tests to be architecture-aware
  3. Using cargo-nextest with architecture-specific partitioning
  4. Adding architecture-specific feature flags

Testing

  • CI passes on both x86_64 (ubuntu-latest) and ARM64 (ubuntu-24.04-arm) runners
  • Core BDK functionality is tested on both architectures
  • Electrs-dependent tests are skipped only on ARM runners

Issue: bitcoindevkit/bdk_wallet#23

@vkprogrammer-001
Copy link
Author

Hey, @notmandatory can you please review this PR? Thank you!

@notmandatory notmandatory moved this to Discussion in BDK Chain Mar 31, 2025
@notmandatory notmandatory moved this to Discussion in BDK Wallet Mar 31, 2025
@YuriQueirozAndrade
Copy link

Hey @vkprogrammer-001, is this a WIP PR ? I noticed that all the commits are currently unsigned and share the same name and description. Could you please rebase and sign the commits? Also, I recommend adopting the conventional commit format for better clarity and consistency, everything I said here you can find in the contributing guide, it's worth taking a look. Other than that, everything looks good to me, cargo fmt, Clippy and all tests passed successfully. Great work!

@vkprogrammer-001 vkprogrammer-001 changed the title ci: Add ARM64 support with selective test exclusions for electrs-dependent tests ci: add ubuntu-24.04-arm runner to workflows This commit adds ARM64 architecture support to the CI workflow by introducing the ubuntu-24.04-arm runner. This enables testing on ARM-based infrastructure like AWS Graviton servers. Apr 3, 2025
@vkprogrammer-001 vkprogrammer-001 changed the title ci: add ubuntu-24.04-arm runner to workflows This commit adds ARM64 architecture support to the CI workflow by introducing the ubuntu-24.04-arm runner. This enables testing on ARM-based infrastructure like AWS Graviton servers. ci: add ubuntu-24.04-arm runner to workflows Apr 3, 2025
This adds ARM64 architecture support to the CI matrix
for testing on ARM-based infrastructure like AWS Graviton servers.
@vkprogrammer-001
Copy link
Author

Hi @YuriQueirozAndrade,

Thank you for catching that! I’ve addressed the issue with the unsigned commits—rebased everything and ensured the commit is now correctly signed and follows the conventional format outlined in the contributing guide.

The PR should now be all set. Appreciate the reminder about the project guidelines!

@YuriQueirozAndrade
Copy link

ACK. i run cargo clippy, fmt and test all have passed, good job!

@github-project-automation github-project-automation bot moved this from Discussion to Done in BDK Chain Apr 8, 2025
@github-project-automation github-project-automation bot moved this from Discussion to Done in BDK Wallet Apr 8, 2025
@vkprogrammer-001
Copy link
Author

Link to the PR in BDk wallet: bitcoindevkit/bdk_wallet#200

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants