Skip to content

Arm release#402

Open
adespawn wants to merge 1 commit intoscylladb:mainfrom
adespawn:arm-release
Open

Arm release#402
adespawn wants to merge 1 commit intoscylladb:mainfrom
adespawn:arm-release

Conversation

@adespawn
Copy link
Contributor

@adespawn adespawn commented Feb 24, 2026

Add arm to release process. This includes building, and then testing the built binary on examples (with a single node version).

I've testes this CI with --dry-run option, to ensure everything works correctly.

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 ARM (aarch64-unknown-linux-gnu) architecture support to the release process. The changes enable building, testing, and publishing ARM64 binaries alongside the existing x86_64 binaries.

Changes:

  • Added aarch64-unknown-linux-gnu as a build target in package.json
  • Created a new build job for aarch64 architecture using ubuntu-24.04-arm runners
  • Added an aarch64 test job that runs examples (integration tests are not run on ARM due to platform limitations)
  • Updated the publish job to include ARM artifacts and wait for ARM tests to complete

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
package.json Added aarch64-unknown-linux-gnu to the napi targets array for multi-architecture support
.github/workflows/release.yml Added build and test jobs for ARM64 architecture, removed outdated comments, and updated publish job dependencies and artifact handling

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

@adespawn
Copy link
Contributor Author

@wprzytula Some thought here: since we are releasing multiple packages (1 main + 1 / architecture) maybe we want to have a separate step that releases all the packages in the dry-run mode, to increase the chances we release all the packages atomically?

Doing dry run should be able to catch most of the problems from our end, so (in theory) the only chance the full run could fail later, would be infrastructure problems: ex. npm dying in the middle of release process

@adespawn adespawn requested a review from wprzytula February 27, 2026 08:12
@adespawn adespawn marked this pull request as ready for review February 27, 2026 08:12
@adespawn adespawn self-assigned this Mar 3, 2026
@adespawn adespawn added this to the 0.4.0 milestone Mar 3, 2026
uses: actions/download-artifact@v6
with:
path: artifacts
merge-multiple: true
Copy link

Choose a reason for hiding this comment

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

Adding merge-multiple: true changes the download behavior: instead of creating subdirectories per artifact name, all files are merged flat into artifacts/. Does npm run artifacts expects/ready for this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Before I was downloading a single artifact, which was not placed into the specific driectory. Now when I download multiple artifacts I need merge-multiple: true to keep the old behaviour

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've updated the release to have the arm in the matrix

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@nikagra I just commented in the wrong place 🤦

build-x86_64-unknown-linux-gnu:
strategy:
fail-fast: false
matrix:
Copy link

Choose a reason for hiding this comment

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

Any reason for having matrix here and not for build-aarch64-unknown-linux-gnu

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The upload step is slightly different: I upload 1 file in arm build, and 3 files in x64.

As a second thought, the syntax for github actions should allow to define what files to upload in the matrix, so maybe I can use it here.

Copy link

Choose a reason for hiding this comment

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

Should I wait for you updating this config?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's already done.

@adespawn adespawn force-pushed the arm-release branch 4 times, most recently from cee36df to a19b65e Compare March 10, 2026 12:28
@adespawn
Copy link
Contributor Author

I've tested all the changes in the dry mode: https://github.com/scylladb/nodejs-rs-driver/actions/runs/22901912473

@adespawn adespawn requested a review from nikagra March 12, 2026 14:53
build-x86_64-unknown-linux-gnu:
build:
strategy:
fail-fast: false
Copy link
Contributor

Choose a reason for hiding this comment

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

❓ Why delete this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I want to know all the steps that fail, so I can fix them in one go, rather than needing to re-run if two things fail

Copy link
Contributor

Choose a reason for hiding this comment

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

Then you should leave this, not delete it...

@wprzytula
Copy link
Contributor

@wprzytula Some thought here: since we are releasing multiple packages (1 main + 1 / architecture) maybe we want to have a separate step that releases all the packages in the dry-run mode, to increase the chances we release all the packages atomically?

Doing dry run should be able to catch most of the problems from our end, so (in theory) the only chance the full run could fail later, would be infrastructure problems: ex. npm dying in the middle of release process

Yes, sounds wise.

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.

4 participants