fix(cicontext): cascade AND-group variables to later members' if: conditions
ci / vet, staticcheck, test, build (push) Successful in 5m43s
release / Build and publish release (push) Successful in 6m20s

Variables set by an earlier AND-group member's variables: block are now
injected into the evaluation context before testing later members' if:
expressions. This matches GitLab CI behaviour where e.g. element 0 sets
DEPLOY=true and element 1 can then check $DEPLOY without requiring the
caller to inject that variable manually.

Previously evalRuleGroup passed the same base vars closure to every
member, so cascaded variables were never visible during if: evaluation
(only in the merged output returned after the group fired).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 23:14:17 +02:00
co-authored by Claude Sonnet 4.6
parent 986162d270
commit fba98acb86
4 changed files with 33 additions and 7 deletions
+10
View File
@@ -17,6 +17,16 @@ workflow:
variables:
PIPELINE_NAME: "deploy"
# AND-group where element 0 sets PHASE=build; element 1 checks $PHASE (cascade).
# Without cascading, element 1 would never match because PHASE is not in
# pipeline variables. With cascading, element 1 sees PHASE from element 0.
- - if: "$CI_COMMIT_BRANCH"
variables:
PHASE: build
- if: "$PHASE"
variables:
PIPELINE_NAME: "branch-build"
variables:
DEPLOY: "false"