You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Try running arm32 test-commit jobs in containers on aarch64 hosts #2775
Unlike the old ThunderX systems, the new Altra machines which we recently set up are capable of running 32-bit ARM code, so can run our armv7l releases on the hardware.
Since we are already using multiple docker containers on those systems, we can also deploy armv7l containers running the distribution of our choice, and try running a non-fanned test job on those systems in an expedient manner.
We had previously discussed adding some raspberry pi4 systems into the jenkins farm, but that seemed to go stale. This would probably provide a more stable, and faster, option at zero additional cost and hopefully lower maintenance overhead.
On the basis of this, I'm going to propose adding this into the main group of jobs that run under node-test-commit and run it alongside node-test-commit-arm-fanned for a while to see how it works out.
For comparison with the above figures, node-test-binary-arm-12+ has been taking over an hour for the most recent runs (and always over half an hour) so there are significant performance avantages to be had here. This would also remove the use of a cross-compiler for this platform if we wished to do so.
Questions I see with the general approach:
Are we happy that running on a container on an armv8l host would be ok (Technically the pi3s are armv8 but I'm guessing most are not running the RaspiOS 64-bit kernel)
We'd need to be comfortable that the version of glibc that's being targetted is suitable for running on all target platforms we'd be interested in. My current tests have been with libc 2.31 as I'm using an Ubuntu 20.04.3 container, but we could use something else.
changed the title [-]Try running arm32 test jobs in containers on aarch64 hosts[/-][+]Try running arm32 test-commit jobs in containers on aarch64 hosts[/+]on Sep 28, 2021
On the basis of this, I'm going to propose adding this into the main group of jobs that run under node-test-commit and run it alongside node-test-commit-arm-fanned for a while to see how it works out.
We used to have some alternative armv7 machines in node-test-commit-arm, but ran into technical and maintenance difficulties and pulled the plug. So it'd be nice to have them back even if just to increase the diversity of armv7 testing. Having the Pis in the cluster though gives us some confidence of running on actual armv7 hardware (particularly some that that hobbyists are using Node.js with).
There might be a point in the future where we want to entirely retire the Pi cluster, but as long as we can keep it chugging along and not holding things up too badly then it would be nice to keep it in the mix. Sadly that future date creeps closer as the test suite expands!
I've adjusted node-test-commit-arm to have another matrix option for ubuntu2004-armv7l and it looks to be running through ok for a Node17 build
This will require some variant of #2776 to ensure that it doesn't try to build Node12 through this (We can look at adding alternate OS docker images later so we are able to run this way on that version)
Activity
sxa commentedon Sep 28, 2021
We had previously discussed adding some raspberry pi4 systems into the jenkins farm, but that seemed to go stale. This would probably provide a more stable, and faster, option at zero additional cost and hopefully lower maintenance overhead.
sxa commentedon Sep 28, 2021
Initial testing with a copy of the node-test-commit-linuxone job:
On the basis of this, I'm going to propose adding this into the main group of jobs that run under node-test-commit and run it alongside node-test-commit-arm-fanned for a while to see how it works out.
For comparison with the above figures, node-test-binary-arm-12+ has been taking over an hour for the most recent runs (and always over half an hour) so there are significant performance avantages to be had here. This would also remove the use of a cross-compiler for this platform if we wished to do so.
Questions I see with the general approach:
[-]Try running arm32 test jobs in containers on aarch64 hosts[/-][+]Try running arm32 test-commit jobs in containers on aarch64 hosts[/+]mhdawson commentedon Sep 28, 2021
Great to hear it seems to be working. Would be great to be able to use docker images versus physical machines.
rvagg commentedon Sep 29, 2021
We used to have some alternative armv7 machines in node-test-commit-arm, but ran into technical and maintenance difficulties and pulled the plug. So it'd be nice to have them back even if just to increase the diversity of armv7 testing. Having the Pis in the cluster though gives us some confidence of running on actual armv7 hardware (particularly some that that hobbyists are using Node.js with).
There might be a point in the future where we want to entirely retire the Pi cluster, but as long as we can keep it chugging along and not holding things up too badly then it would be nice to keep it in the mix. Sadly that future date creeps closer as the test suite expands!
sxa commentedon Sep 29, 2021
I've adjusted node-test-commit-arm to have another matrix option for ubuntu2004-armv7l and it looks to be running through ok for a Node17 build
This will require some variant of #2776 to ensure that it doesn't try to build Node12 through this (We can look at adding alternate OS docker images later so we are able to run this way on that version)
sxa commentedon Sep 29, 2021
Changes now live. Closing.