diff --git a/jobs/build.Jenkinsfile b/jobs/build.Jenkinsfile index 1955c0222..87e67b62c 100644 --- a/jobs/build.Jenkinsfile +++ b/jobs/build.Jenkinsfile @@ -261,6 +261,27 @@ lock(resource: "build-${params.STREAM}") { if (prevBuildID == buildID) { currentBuild.result = 'SUCCESS' currentBuild.description = "${build_description} 💤 (no new build)" + + // Nothing changed since the latest build. Check if it's missing + // some arches and retrigger `build-arch` only for the missing + // arches, and the follow-up `release` job. Match the exact src + // config commit that was used. + def builds = readJSON file: "builds/builds.json" + assert buildID == builds.builds[0].id + def missing_arches = additional_arches - builds.builds[0].arches + if (missing_arches) { + def meta = readJSON(text: shwrapCapture("cosa meta --build=${buildID} --dump")) + def rev = meta["coreos-assembler.config-gitrev"] + currentBuild.description = "${build_description} 🔨 ${buildID}" + if (uploading) { + run_multiarch_jobs(missing_arches, rev, buildID, cosa_img) + if (stream_info.type != "production") { + run_release_job(buildID) + } + } + } + + // And we're done! return }