[CI] (.github/workflows, docs/ci, scripts/ci): require optional census rows on the path that runs them

- skip_census.py check --require LANE: an optional lane the run took the path for is red when absent, and a name the baseline lacks is red too; self-test cases
- skip-census needs build-guard and reads integration-split's new defaults-on output: any verdict but identical requires unit-split, arm-inproc and arm-monolith, and unproven IPC defaults require the two arm rows
This commit is contained in:
2026-10-17 17:13:51 -04:00
parent 43e671f027
commit 9eb92f83c9
3 changed files with 46 additions and 8 deletions
+20 -1
View File
@@ -1557,6 +1557,9 @@ jobs:
timeout-minutes: 120
needs: [build-guard, build-linux-split, build-linux]
if: ${{ !cancelled() && needs.build-linux-split.result == 'success' && (needs.build-guard.outputs.verdict != 'identical' || needs.build-linux.result == 'success') }}
# The skip census reads whether 'Default-knob resolution check' proved the IPC defaults.
outputs:
defaults-on: ${{ steps.resolution.outputs.defaults-on }}
# Short-lived test processes skip the glslang prewarm, as in the test job.
env:
@@ -4067,6 +4070,7 @@ jobs:
name: skip census
runs-on: ubuntu-26.04
needs:
- build-guard
- test
- integration
- integration-verify
@@ -4084,10 +4088,25 @@ jobs:
with:
pattern: junit-*
path: junit
# The optional rows run on some paths only, and on the path this run took they are required:
# without a reused build (any build-guard verdict but identical) integration-split runs its
# unit lane and Transport A/B, and with one A/B still runs when the IPC defaults were not
# proven.
- name: Skip census
env:
GUARD_VERDICT: ${{ needs.build-guard.outputs.verdict }}
SPLIT_DEFAULTS_ON: ${{ needs.integration-split.outputs.defaults-on }}
run: |
required=()
if [ "${GUARD_VERDICT}" != identical ]; then
required+=(--require junit-integration-split/unit-split)
fi
if [ "${GUARD_VERDICT}" != identical ] || [ "${SPLIT_DEFAULTS_ON}" != true ]; then
required+=(--require junit-integration-split/arm-inproc --require junit-integration-split/arm-monolith)
fi
echo "build-guard verdict '${GUARD_VERDICT:-none}', split IPC defaults proven '${SPLIT_DEFAULTS_ON:-no}': ${required[*]:-no optional row required}"
python3 scripts/ci/skip_census.py check junit \
--baseline scripts/data/skip_census_baseline.json --report skip-census.json
--baseline scripts/data/skip_census_baseline.json --report skip-census.json "${required[@]}"
- name: Upload census
if: ${{ always() }}
uses: actions/upload-artifact@v7