Skip to content

Commit 4244bf2

Browse files
committed
Sequestrate docker ARM builds and fail early
Once in a while when centos 8 builder lands on the ARM64 host ubuntu-nc-arm64-12 the build fails. That's because of Spidermonkey. Version 60 on CentOS 8 doesn't build on ARM64. To help with that sequestrate it such that we only explicitly run Debian builds on that host and no other flavor. It's sad to lose a host like that but it's preferable to having to mash reply probably. To help a bit with available worker switch to fail early mode. This way on first failure the build will stop so it will free up workes quickly.
1 parent 34ac008 commit 4244bf2

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

build-aux/Jenkinsfile

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,25 @@ meta = [
141141
image: "${DOCKER_IMAGE_BASE}-${ERLANG_VERSION}"
142142
],
143143

144+
// This runs on a docker ARM64 host. Normally we should be able to run all
145+
// ubuntu and centos containers on top any docker host, however spidermonkey
146+
// 60 from CentOS cannot build on ARM64 so we're forced to separate it as a
147+
// separate build usable for ubuntu/debian only and isolated it from other
148+
// builds. At some point when we remove CentOS 8 or switch to QuickJS only,
149+
// remove the docker-arm64 label on ubuntu-nc-arm64-12 node in Jenkins and
150+
// remove this flavor
151+
//
152+
'base-arm64': [
153+
name: 'Debian ARM64',
154+
spidermonkey_vsn: '78',
155+
with_nouveau: true,
156+
with_clouseau: true,
157+
// Test this in in the bookworm-quickjs variant
158+
quickjs_test262: false,
159+
image: "${DOCKER_IMAGE_BASE}-${ERLANG_VERSION}",
160+
node_label: 'docker-arm64'
161+
],
162+
144163
'trixie': [
145164
name: 'Debian x86_64',
146165
spidermonkey_vsn: '128',
@@ -628,7 +647,7 @@ pipeline {
628647
steps {
629648
script {
630649
// Including failFast: true in map fails the build immediately if any parallel step fails
631-
parallelStagesMap = meta.collectEntries( [failFast: false] ) { key, values ->
650+
parallelStagesMap = meta.collectEntries( [failFast: true] ) { key, values ->
632651
if (values.image) {
633652
["${key}": generateContainerStage(key)]
634653
}

0 commit comments

Comments
 (0)