Skip to content

Commit 7eb8a1e

Browse files
committed
Report only; drop issue creation
Print the report to the job log, the run summary, and an artifact instead of filing a tracking issue. Removes the label probing, the jq output plumbing, and the issues: write permission -- the job now needs only contents: read. This also sidesteps the _claude-code.yml author-association gate, which would have rejected an issue opened by github-actions[bot] anyway. Wiring up on-demand root-cause analysis can come later on top of a detector that works.
1 parent e33cd00 commit 7eb8a1e

1 file changed

Lines changed: 17 additions & 50 deletions

File tree

.github/workflows/vllm-torch-nightly-triage.yml

Lines changed: 17 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -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

1416
on:
1517
# TEMPORARY (DO NOT MERGE): run on PRs touching this workflow so it can be
@@ -36,7 +38,6 @@ jobs:
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

Comments
 (0)