@@ -6,10 +6,12 @@ name: vLLM torch-nightly triage
66# "Full CI run - nightly" from the same HEAD in the same cron slot, so the pair is a
77# controlled A/B. This job reports jobs that fail in the former and pass in the latter.
88#
9- # ClickHouse stores job metadata only -- log contents are not ingested -- so this
10- # identifies *which* jobs regressed, not *why*. The issue body ends with @claude so a
11- # maintainer gets on-demand root-cause analysis (which reads the linked Buildkite logs
12- # via .claude/skills/vllm-pytorch-ci-triage) without this job needing a Buildkite token.
9+ # Reports only: the result goes to the job log, the run summary, and an artifact.
10+ # Nothing is filed anywhere.
11+ #
12+ # ClickHouse stores job metadata only (the tables carry log_url pointers, not log
13+ # bodies), so this answers *which* jobs regressed, not *why*. Root-causing means
14+ # reading the linked Buildkite logs, e.g. with .claude/skills/vllm-pytorch-ci-triage.
1315
1416on :
1517 # TEMPORARY (DO NOT MERGE): run on PRs touching this workflow so it can be
3638 runs-on : ubuntu-24.04
3739 permissions :
3840 contents : read
39- issues : write
4041 steps :
4142 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4243
@@ -59,59 +60,25 @@ jobs:
5960 --lookback-days "${{ inputs.lookback_days || '14' }}" \
6061 --output "${RUNNER_TEMP}/report.md" \
6162 --json-output "${RUNNER_TEMP}/report.json"
62- # No pair found => no report written => nothing to post .
63- if [[ -s "${RUNNER_TEMP}/report.json " ]]; then
63+ # No torch-nightly build with a same-commit baseline => no report written .
64+ if [[ -s "${RUNNER_TEMP}/report.md " ]]; then
6465 echo "has_report=true" >> "${GITHUB_OUTPUT}"
65- jq -r '"build=\(.torch_nightly_build)"' "${RUNNER_TEMP}/report.json" >> "${GITHUB_OUTPUT}"
66- jq -r '"regressed=\(.regressed | length)"' "${RUNNER_TEMP}/report.json" >> "${GITHUB_OUTPUT}"
6766 else
6867 echo "has_report=false" >> "${GITHUB_OUTPUT}"
6968 fi
7069
71- - name : Summarise
70+ - name : Print report
7271 if : steps.report.outputs.has_report == 'true'
73- run : cat "${RUNNER_TEMP}/report.md" >> "${GITHUB_STEP_SUMMARY}"
74-
75- # Never file issues from a PR run -- a test of this workflow must not create
76- # noise. The report is still visible in the job summary above.
77- - name : Open triage issue
78- if : |
79- github.event_name != 'pull_request' &&
80- steps.report.outputs.has_report == 'true' &&
81- steps.report.outputs.regressed != '0'
82- env :
83- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
84- BUILD : ${{ steps.report.outputs.build }}
85- COUNT : ${{ steps.report.outputs.regressed }}
8672 run : |
8773 set -euo pipefail
88- TITLE="[vllm] torch-nightly regressions in Buildkite #${BUILD} (${COUNT} jobs)"
89- {
90- cat "${RUNNER_TEMP}/report.md"
91- echo
92- echo "---"
93- echo
94- echo "@claude please root-cause these regressions using the"
95- echo "\`vllm-pytorch-ci-triage\` skill. Fetch the Buildkite logs for one"
96- echo "representative job per cluster above, group the failures by root cause,"
97- echo "and draft (do not file) one upstream issue per distinct cause."
98- } > "${RUNNER_TEMP}/issue.md"
99- # Labels are applied only if they already exist -- gh fails the whole
100- # command on an unknown label, and the issue matters more than the label.
101- LABEL_ARGS=()
102- for L in "vllm" "ci: torch-nightly"; do
103- if gh label list --repo "${GITHUB_REPOSITORY}" --search "${L}" \
104- --json name --jq '.[].name' | grep -qxF "${L}"; then
105- LABEL_ARGS+=(--label "${L}")
106- else
107- echo "note: label '${L}' does not exist, skipping"
108- fi
109- done
110- gh issue create \
111- --repo "${GITHUB_REPOSITORY}" \
112- --title "${TITLE}" \
113- --body-file "${RUNNER_TEMP}/issue.md" \
114- "${LABEL_ARGS[@]}"
74+ cat "${RUNNER_TEMP}/report.md"
75+ cat "${RUNNER_TEMP}/report.md" >> "${GITHUB_STEP_SUMMARY}"
76+
77+ - name : No comparable build
78+ if : steps.report.outputs.has_report != 'true'
79+ run : |
80+ echo "No torch-nightly build with a same-commit baseline in the lookback window." \
81+ | tee -a "${GITHUB_STEP_SUMMARY}"
11582
11683 - name : Upload report
11784 if : steps.report.outputs.has_report == 'true'
0 commit comments