- GL046: validate image/service pull_policy values (always, if-not-present, never)
- GL047: error when a variables.options default value is not in the options list
- GL048: error on unrecognised trigger.forward keys
- GL049: validate rules[n].allow_failure (bool or {exit_codes:} map)
- Parse and evaluate workflow.rules/job.rules nested-array AND-groups; crash
on !!seq nodes is fixed; all members of a group must match for it to fire
- Add workflow.name and workflow.auto_cancel fields to Workflow struct
- Fix GL032 false positive: variables declared in any workflow rule's variables:
block no longer trigger an undeclared-variable warning in sibling workflow
rule if: expressions
- Add Windows ARM64 release build target (task build-windows-arm64)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
56 lines
1.5 KiB
YAML
56 lines
1.5 KiB
YAML
---
|
|
# variable_refs.yml
|
|
# Verifies that GL032 does not fire for variables that are declared or predefined.
|
|
# Covers: pipeline variables:, job variables:, workflow:rules:variables:, and CI_* prefixes.
|
|
# Expected: exits 0 (no errors; no GL032 warnings).
|
|
|
|
stages:
|
|
- build
|
|
- deploy
|
|
|
|
variables:
|
|
DEPLOY_TARGET: "staging"
|
|
FEATURE_FLAG: "false"
|
|
|
|
workflow:
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
variables:
|
|
DEPLOY_TARGET: "production"
|
|
WORKFLOW_FLAG: "true"
|
|
# workflow rule referencing a variable set by a sibling rule's variables: — GL032 must not fire
|
|
- if: '$WORKFLOW_FLAG == "true"'
|
|
when: always
|
|
- when: always
|
|
|
|
build:
|
|
stage: build
|
|
script: make build
|
|
rules:
|
|
# pipeline-level variable — GL032 must not fire
|
|
- if: '$DEPLOY_TARGET == "staging"'
|
|
when: on_success
|
|
# predefined CI variable — GL032 must not fire
|
|
- if: '$CI_COMMIT_BRANCH =~ /^feat\/.+/'
|
|
when: manual
|
|
|
|
deploy:
|
|
stage: deploy
|
|
script: make deploy
|
|
variables:
|
|
DEPLOY_REGION: "us-east-1"
|
|
rules:
|
|
# pipeline-level variable — no warning
|
|
- if: '$FEATURE_FLAG == "true"'
|
|
when: never
|
|
# workflow-rule-injected variable — no warning
|
|
- if: '$DEPLOY_TARGET == "production"'
|
|
when: on_success
|
|
# job-level variable — no warning
|
|
- if: '$DEPLOY_REGION == "us-east-1"'
|
|
when: on_success
|
|
# predefined GITLAB_ variable — no warning
|
|
- if: '$GITLAB_USER_LOGIN == "bot"'
|
|
when: never
|
|
- when: manual
|