8dc30d9207
Add GL044 to validate jobs listed in rules:needs: overrides (GitLab CI 16.4+). rules:needs: lets a specific rule override the job's top-level needs: list; any referenced job must exist in the pipeline. Unknown jobs produce an error; optional: true entries produce a warning, matching the GL027 behaviour for top-level needs:. Cross-pipeline needs and skipped jobs (when a context is active) are excluded from checking. Implementation: - model.Rule gains a Needs []any field (yaml:"needs") - checkRulesNeeds(p, skipped) added to needs.go; wired into Lint - GL044 / RuleRulesNeedsUnknown added to rules.go and explain.go - 6 unit tests + 2 testdata fixtures; task validate updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
16 lines
273 B
YAML
16 lines
273 B
YAML
stages:
|
|
- build
|
|
- test
|
|
|
|
build-job:
|
|
stage: build
|
|
script: make
|
|
|
|
test-job:
|
|
stage: test
|
|
script: make test
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
needs: [build-job, nonexistent-job] # nonexistent-job does not exist → GL044
|
|
- when: on_success
|