Comment by bhollis
2 days ago
We're using Go, so cross-compilation has never been a big problem (for producing artifacts). But this'll be great for testing on ARM. I'm interested to see the performance of these instances too - our experience has been that Amazon's Graviton processors have fantastic bang-for-buck vs. Intel/AMD.
If you're using Go, you can also run tests with QEMU binfmt on Linux.
https://wiki.debian.org/QemuUserEmulation
Many people don't know this, but on a correctly configured amd64 Linux box this just works:
$ GOARCH=s930x go test
The test is cross compiled, and then run with QEMU user mode emulation.
Configuring this for GitHub Actions is a single dependency: docker/setup-qemu-action@v3
Also, if you want to test different OSes, there are a couple of actions to accomplish it.
I'll probably be integrating these Linux ARM instances, but this workflow should give you an idea of what was already possible with the existing runners:
https://github.com/ncruces/go-sqlite3/blob/main/.github/work...
Very useful example. Thank you.
It may be worth checking the price and performance numbers; it might be worth running builds on ARM and cross-compiling your x86 binaries (based on https://github.blog/news-insights/product-news/arm64-on-gith... claiming 37% cheaper).