jenkins,ansible: arm cross-compilers as docker containers#2290
Conversation
|
(I made this PR with the new https://cli.github.com/, not a bad experience, can recommend folks give it at try at least) |
|
These new containers should be basically the same as the current pair of 16.04 machines plus the one we have in ci-release. It copies that for 18.04 but removes 4.x and older toolchains, so we'd only be using it for gcc-6 and then giving us a platform for possibly experimenting with gcc-8, which I have an initial toolchain for in the rpi-newer-crosstools repo. The new containers will get labels with their base image type in it, so I just need to test it. I'll run some short experiments tomorrow during the lull in activity I experience during my midday of switching over binary-arm to these new labels and pointing to this branch's VersionSelectorScript and see how it goes across all the release lines. I only have this deployed on one of the Docker hosts at the moment, so just one container of each type in CI so far. If successful, and nobody disagrees, I can roll it out across the 4 of them. |
|
This is active now in CI and it seems to be working nicely so I thought I'd leave it on and see how it goes for the next day. Change to node-cross-compile is here: Main diff is the labels: - <string>cross-compiler-armv6-gcc-4.8</string>
- <string>cross-compiler-armv6-gcc-4.9.4</string>
- <string>cross-compiler-armv7-gcc-4.8</string>
- <string>cross-compiler-armv7-gcc-4.9.4</string>
- <string>cross-compiler-armv7-gcc-6</string>
+ <string>cross-compiler-ubuntu1604-armv6-gcc-4.9.4</string>
+ <string>cross-compiler-ubuntu1604-armv7-gcc-4.9.4</string>
+ <string>cross-compiler-ubuntu1604-armv7-gcc-6</string>
+ <string>cross-compiler-ubuntu1804-armv7-gcc-6</string>You'll notice that I've got rid of gcc-4.8 and gcc-4.9, leaving gcc-4.9.4 as the lowest. That's because that's the version Node 10 uses, the others are for older builders. Which also means we're not using the Raspbian cross toolchain anymore, only rpi-newer-crosstools. Which also simplifies setup. I've reflected that in the latest commit which pulls them out of Dockerfile and cc-selector.sh. Pretty happy with this so far I think. |
|
We are filling up the Pi's much quicker than previously though, so we're still getting "offline, disk full" pretty quick across the cluster. I need to do something more permanent about disk space. I'm thinking of putting the bulk of each Pi root onto HDD leaving only ~iojs/build on each for SDD which gives us a bit more room to move while not compromising on speed too much. That's going to take a bit of work though so that won't be done in a hurry. |
|
Also to be clear, these binaries for |
|
I've added a |
|
I think the next step I want to take here is to set up a docker host for ci-release with just these 2 builders on it, a 4cpu machine rather than the usual 2cpu ones we usually have there. Then after that I can remove the 3 current cross compilers and the |
|
Have added a release docker host and am running test builds now. iojs+release is configured with the new tags and uses this branch's VersionSelectorScript for the test. I've removed the old cross-compiler ansible scripts and entried for the 3 cross compiler machines from inventory. They'll also need to be de-provisioned and removed from firewalls when this gets merged. |
I'm calling this good. PTAL folks. |
FWIW the AIX build for this job looked stuck (had been running for 7+hrs) so I cancelled it. |
|
@rvagg It looks like the nightly has failed: https://ci-release.nodejs.org/job/iojs+release/5911/nodes=cross-compiler-ubuntu1804-armv7-gcc-6/console It looks like it's this bit of the job config which is now being triggered since the cross-compiler has moved into a docker container and is overriding the # manually force all docker builds to be "custom" / "experimental", also forced
# in the promotion tool on the server
if [[ "X${OSVARIANT}" == "Xdocker" ]]; then
disttype=custom
RELEASE_URLBASE="https://nodejs.org/download/experimental/"
fiFrom the job log: |
|
hah, I have very vague memories of this, I guess it was me, I just don't recall that "experimental" thing. I've commented that section out with a note pointing back here. Will watch today's nightlies. |
|
https://nodejs.org/download/nightly/v14.0.0-nightly202004204af0598134/ |
c50074b to
22f5e86
Compare
|
updated links to VersionSelectorScript in ci/node-cross-compile and ci-release/iojs+release back to master, not this branch, 🤞 |
WIP