ci: add riscv64 to static Node.js build matrix#754
ci: add riscv64 to static Node.js build matrix#754
Conversation
Uses ubuntu-24.04-riscv runner and manylinux_2_39_riscv64 for testing (manylinux2014 has no riscv64 image). Dockerfile-test updated to take a full MANYLINUX_IMAGE arg instead of constructing from MANYLINUX_ARCH. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
binutils-gold is not available as a separate Alpine package on riscv64. Standard binutils (ld.bfd) is sufficient for the static Node.js build. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
Node.js bundled OpenSSL hardcodes linux-x86_64 config paths and passes -m64 even when --dest-cpu=riscv64 is set. --openssl-no-asm skips arch-specific OpenSSL assembly and uses the generic config. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
|
The v24.5.0 riscv64 job failed immediately with Could someone re-run the failed job when there is a chance? Happy to report build times once both complete. |
|
The |
|
Just re-ran. It's surprising to me that we'd hit an issue with ppc64le, it'd have to be a regression in the manylinux2014 image I guess? |
Prerequisite for #749.
The
cryptography-linux/Dockerfilepullsghcr.io/pyca/static-nodejs-riscv64:{version}at build time, but that image does not exist yet becausebuild-static-node.ymlonly covers x86_64, aarch64, and ppc64le.Changes:
ubuntu-24.04-riscvto the build matrixDockerfile-testto accept a fullMANYLINUX_IMAGEarg rather than constructingquay.io/pypa/manylinux2014_{arch}(manylinux2014 has no riscv64 image; riscv64 usesmanylinux_2_39_riscv64)The main unknown is build time. Node.js does not ship riscv64 prebuilt binaries, so this builds from source inside Alpine on the RISE runner. Alex noted other platforms already take over an hour; the riscv64 result will show whether it is in a similar range.
Signed-off-by: Bruno Verachten gounthar@gmail.com