signalapp / libsignal

Home to the Signal Protocol as well as other cryptographic primitives which make Signal possible.
GNU Affero General Public License v3.0
3.08k stars 362 forks source link

node: Add Windows ARM64 prebuilds to CI #440

Closed dennisameling closed 2 years ago

dennisameling commented 2 years ago

This PR adds prebuilds for Windows ARM64 to CI. I've been building these in my fork for a few months and haven't encountered issues with it.

As discussed in https://github.com/signalapp/libsignal-client/pull/426#issuecomment-998233937, "discussion with the Desktop folks is leaning positive about it", so I took the liberty to create this PR 😊

dennisameling commented 2 years ago

do you feel confident that aarch64-pc-windows-msvc is sufficiently exercised by the other AArch64 platforms + AMD64 Windows?

I would say yes. I've been building this in my fork for a few months from a x64 host and all is good. aarch64-pc-windows-msvc is a Tier 2 with Host Tools platform, just like aarch64-apple-darwin, so it's also well-supported from the Rust side.

we're still not compiling for aarch64-apple-darwin or aarch64-pc-windows-msvc on every PR

Would you like me to add aarch64-pc-windows-msvc to the regular PR pipeline as well? Shall we simply use npx prebuildify for that or would you prefer a different approach? I'm happy to sponsor an ECS LIVA QC710 if you want to run CI tests on Windows ARM64 as well, or would you feel comfortable enough cross-compiling from x64 for now (which is the only architecture for which GH Actions has hosted runners currently)?

jrose-signal commented 2 years ago

Let's leave the per-PR CI as it is for now, then. Setting up a custom GitHub Actions runner is one more thing we'd have to keep running, and without that we'd just be testing compilation, which is pretty unlikely to break just for ARM64 Windows.

Thank you for doing this!

jrose-signal commented 2 years ago

Just published v0.12.1 with an ARM64 Windows prebuild. :-)