Skip to content

fix: gate agentless WaitForBuilds job on a mapped job variable - #87

Merged
NickGraham101 merged 1 commit into
mainfrom
FixRenovateWaitForBuildsCondition
Sep 15, 2026
Merged

NickGraham101 merged 1 commit into
mainfrom
FixRenovateWaitForBuildsCondition

Conversation

@NickGraham101

Copy link
Copy Markdown
Owner

Summary

  • renovate-run.yml's WaitForBuilds job (pool: server, agentless) referenced dependencies.RunRenovate.outputs['CheckScheduleName.RunRenovate'] directly inline in its condition:. Confirmed via build 12441 that this resolved incorrectly on a scheduled run — the Delay task ran even though the schedule name didn't match and the source output variable was 'False'. Fix: map the output into a job-level variables: block first (same pattern MergePRs already uses at line 74) so the condition reads a plain variables['RunRenovate'] instead.
  • Also fixes "$false" interpolating to 'False' (capital) instead of 'false' when the output variable is initialized in CheckScheduleName.

Test plan

  • Trigger gandt-agent pipeline on schedule where ScheduleName doesn't match — confirm RunRenovate, WaitForBuilds, MergePRs all skip.
  • Trigger on schedule where ScheduleName matches — confirm full chain runs (Renovate → Delay → Merge).
  • Trigger manually with RunRenovateManually/RunMergePRManually — confirm existing manual-run behavior unchanged.

🤖 Generated with Claude Code

dependencies.RunRenovate.outputs[...] referenced directly in the
agentless (pool: server) job condition was unreliable: build 12441
ran the Delay task even though the schedule name didn't match and
the output variable resolved to 'False'. Map the output into a
job-level variable first (same pattern MergePRs already uses) so
condition evaluation reads a plain variables[] lookup instead.

Also fixes $false interpolating to 'False' (capital) instead of
'false' when the output variable is initialized.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Unit Test Results

1 136 tests  ±0   1 136 ✔️ ±0   27s ⏱️ -2s
       3 suites ±0          0 💤 ±0 
       1 files   ±0          0 ❌ ±0 

Results for commit 85a8dda. ± Comparison against base commit 83dd773.

@NickGraham101
NickGraham101 merged commit b8b588a into main Sep 15, 2026
4 checks passed
@NickGraham101
NickGraham101 deleted the FixRenovateWaitForBuildsCondition branch September 15, 2026 19:11
NickGraham101 added a commit that referenced this pull request Oct 2, 2026
PR #87/#88's fixes to the WaitForBuilds gate didn't work: build 12586
(Weekly Redeployment, both manual params false) still ran the Delay
task. Isolated with the pipeline preview API against a scratch branch:
${{ and(parameters.RunRenovateManually, parameters.RunMergePRManually) }}
compiled to True even with both params false, and and(param, true)
compiled True regardless of the param's value -- the ADO expression
engine isn't treating a boolean-typed parameter as boolean when it's
an argument to and(), only when it's the sole value of a ${{ }} block.

Wrapping each operand as eq(parameters.X, true) forces a real boolean
comparison before and() sees it. Verified all four combinations
(false/false, true/true, true/false, false/true) compile correctly
via the preview API.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant