From f08dd1aa0429fb5b83e682bf5573a2b8f16e5cac Mon Sep 17 00:00:00 2001 From: Matt Lefebvre Date: Thu, 3 Sep 2026 11:57:24 -0700 Subject: [PATCH] [TRTLLMINF-336][infra] enable BOLT premerge consume Flip ENABLE_BOLT_PREMERGE_CONSUME to true so every eligible premerge build re-BOLTs its packed tarball with main's promoted profile bundle, and the test stages downstream exercise the bolted binaries. The scaffolding landed in 01dc618130 with this switch off. All of the wiring -- the boltConsume pass-through to the build helpers, the globalVars propagation Build.groovy reads, and the resolveBoltConsume restrictions -- is already in place, so this only changes the default answer to "should this build consume". resolveBoltConsume() still narrows it: premerge only (the postmerge build is the un-BOLTed input BoltProfileGen profiles, so BOLTing it would feed already-bolted binaries back into profile generation) and main only (apply_latest.sh resolves exactly one branch with no fallback). In practice this reaches aarch64/SBSA only today: the postmerge producer promotes targetArch aarch64-linux-gnu alone, so main has no x86_64 bundle. The x86_64 build still asks and takes apply_latest.sh's documented "nothing promoted" exit (3), which Build.groovy reports as a skip and leaves un-BOLTed. It begins consuming on its own once an x86_64 bundle is promoted, with no further change here. Rollback: set ENABLE_BOLT_PREMERGE_CONSUME back to false. Signed-off-by: Matt Lefebvre --- jenkins/L0_MergeRequest.groovy | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jenkins/L0_MergeRequest.groovy b/jenkins/L0_MergeRequest.groovy index 1ef2aac37c97..f304703e05dc 100644 --- a/jenkins/L0_MergeRequest.groovy +++ b/jenkins/L0_MergeRequest.groovy @@ -187,8 +187,15 @@ def BOLT_CONSUME = "bolt_consume" // on for every eligible build is a reviewed code change; a `/bot run` with // `"bolt_consume": true` opts in a single run without one. Either way // resolveBoltConsume() still applies the post-merge and branch restrictions. +// +// On today means aarch64/SBSA only in practice: the post-merge producer promotes +// `targetArch: aarch64-linux-gnu` alone (see the BOLT-Profile-Gen stage below), so +// main has no x86_64 bundle. The x86_64 build still asks and takes apply_latest.sh's +// documented "nothing promoted" exit (3), which Build.groovy reports as a skip and +// leaves un-BOLTed. It starts consuming on its own once an x86_64 bundle is promoted, +// with no change here. @Field -def ENABLE_BOLT_PREMERGE_CONSUME = false +def ENABLE_BOLT_PREMERGE_CONSUME = true def testFilter = [ (REUSE_TEST): gitlabParamsFromBot.get(REUSE_TEST, null),