[CI] Fast-fail on lint check failure in check-stage-health (#22400)
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
name: Check Stage Health
|
name: Check Stage Health
|
||||||
description: Fail fast if any job in the current workflow run has already failed. Auto-skips for scheduled runs.
|
description: Fail fast if any job in the current workflow run has already failed, or if the lint check (from lint.yml) has failed. Auto-skips for scheduled runs.
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
github-token:
|
github-token:
|
||||||
@@ -29,6 +29,24 @@ runs:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check lint status from the separate Lint workflow (lint.yml).
|
||||||
|
// listJobsForWorkflowRun only sees jobs within the SAME run, so we use
|
||||||
|
// checks.listForRef which queries by commit SHA across ALL workflows.
|
||||||
|
const ref = context.payload.pull_request?.head?.sha || context.sha;
|
||||||
|
const { data } = await github.rest.checks.listForRef({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
ref: ref,
|
||||||
|
check_name: 'lint',
|
||||||
|
});
|
||||||
|
const lintRun = data.check_runs.find(
|
||||||
|
cr => cr.app?.slug === 'github-actions'
|
||||||
|
);
|
||||||
|
if (lintRun?.status === 'completed' && lintRun?.conclusion === 'failure') {
|
||||||
|
core.setFailed('Fast-fail: lint check failed');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const jobs = await github.paginate(github.rest.actions.listJobsForWorkflowRun, {
|
const jobs = await github.paginate(github.rest.actions.listJobsForWorkflowRun, {
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
|
|||||||
Reference in New Issue
Block a user