CI system for building and testing Node.js on native RISC-V (riscv64) hardware.
-
Edit the
build-configfile with your desired configuration:repo=nodejs/node commit=abc0123456789abcdef0123456789abcdef012345 compiler=clangField Required Default Description repoNo nodejs/nodeGitHub repository ( owner/name)commitYes — Full 40-character commit SHA. Branch/tag names are rejected. compilerNo clangclangorgcc -
Open a pull request with your changes to
build-config. -
The CI workflow builds Node.js at the specified commit, runs the test suite on a native riscv64 runner, and uploads the resulting binaries as workflow artifacts.
Successful builds upload a tarball containing:
node— the Node.js binarymksnapshot/node_mksnapshot— the V8 snapshot tool
The Cross RISC-V Build workflow builds Node.js v24 release tags on an x64
GitHub-hosted runner for linux-riscv64.
For pull request validation, edit cross-build-config in the PR:
tag=v24.18.0
local_revision=1
| Field | Required | Default | Description |
|---|---|---|---|
tag |
Yes | — | Node.js v24 release tag, for example v24.4.0 |
local_revision |
No | 1 |
Positive local rebuild number, used in artifact names |
jobs |
No | nproc |
Parallel build jobs |
Pull request builds upload the tarballs as a GitHub Actions artifact instead of creating a GitHub Release.
For release publishing, run the same workflow manually from GitHub Actions with:
| Input | Description |
|---|---|
tag |
Node.js v24 release tag, for example v24.4.0 |
local_revision |
Positive local rebuild number, used in the GitHub release tag and tarball variation |
jobs |
Parallel build jobs, empty = nproc |
Manual builds upload the artifact and then publish the same files to this repository's GitHub Releases.
The workflow uses Chromium's debian_trixie_riscv64_sysroot and clang target
compilers. It applies every .patch and .diff file in
v24-patches/ before building.
For tag=v24.4.0 and local_revision=1, the GitHub release tag is
v24.4.0-riscv64.1 and the uploaded tarballs are named like
node-v24.4.0-linux-riscv64-local1.tar.xz. The release also includes
SHASUMS256.txt for the uploaded tarballs.