Redundant steps across jobs¶
Rule ID |
|
|---|---|
Category |
energy |
Severity |
medium |
Identical setup steps (checkout, dependency install) are duplicated across jobs without using reusable workflows or job outputs.
Detection¶
heuristic — Structural comparison across multiple jobs or steps.
Examples¶
Non-compliant:
jobs:
test:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm test
lint:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm run lint
build:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm run build
Compliant:
jobs:
test:
uses: ./.github/workflows/reusable-node.yml
with: {script: npm test}
lint:
uses: ./.github/workflows/reusable-node.yml
with: {script: npm run lint}
build:
uses: ./.github/workflows/reusable-node.yml
with: {script: npm run build}
Fix: Extract shared setup into a reusable workflow or composite action so the checkout and setup steps run once rather than being duplicated across jobs.