CI: use Docker to build binaries for linux-arm64#191
Conversation
Recently it comes to my attention that Github Actions image installs experimental C++ standard library from an unsupported PPA, which effectively breaks assumptions of binary compatibility for the OS (in this case, Ubuntu 18.04+). Unfortunately, as a result, the Github Actions environment can no longer be trusted to compile proper binaries. This change adds a Dockerfile that composes a proper Ubuntu 18.04 environment from official "ubuntu:bionic" image, and builds Node binaries in it. Bug: actions/runner-images#3432
|
edit: compiler alone is not enough. The image does not include a full cross-capable toolchain (arm64 headers/libs of C++ STL, etc.) unfortunately. It is also an option to use CentOS / Oracle Linux 7 arm64 toolchain (Red Hat does not provide one for arm64), in line with the upstream and our x64 binaries (already using RHEL7 toolset). However, there is no cross toolchain, and as I explained in #124, we can't use emulation to build such a large project. We have to get a native arm64 machine for CI if we want to choose this option. |
robertsLando
left a comment
There was a problem hiding this comment.
LGTM. Hope the build time will not be too long now
Recently it comes to my attention that Github Actions image installs
experimental C++ standard library from an unsupported PPA, which
effectively breaks assumptions of binary compatibility for the OS
(in this case, Ubuntu 18.04+).
Unfortunately, as a result, the Github Actions environment can no
longer be trusted to compile proper binaries.
This change adds a Dockerfile that composes a proper Ubuntu 18.04
environment from official "ubuntu:bionic" image, and builds Node
binaries in it.
Refs: actions/runner-images#3376, actions/runner-images#3432, actions/runner-images#3459