[CI] Split the CI control labels into four axes and resolve them live (#40527)
This commit is contained in:
@@ -187,19 +187,29 @@ jobs:
|
||||
echo "Run mode: FILTERED (triggered by ${{ github.event_name }})"
|
||||
fi
|
||||
|
||||
- name: Resolve CI labels
|
||||
id: ci-labels
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
script: |
|
||||
const { resolveCiLabels } = require(
|
||||
`${process.env.GITHUB_WORKSPACE}/.github/scripts/ci-labels.cjs`
|
||||
);
|
||||
const axes = await resolveCiLabels(github, context);
|
||||
core.info(`CI labels: [${axes.labels.join(', ')}]`);
|
||||
core.setOutput('bypass_fail_fast', String(axes.bypassFailFast));
|
||||
|
||||
- name: Set continue-on-error for schedule/full runs
|
||||
id: set-continue-on-error
|
||||
env:
|
||||
# `bypass-fastfail` PR label: also disable within-suite fast-fail
|
||||
# here. The shared actions/wait-for-jobs already honors the same
|
||||
# label to skip cross-stage waits.
|
||||
BYPASS_FASTFAIL_LABEL: ${{ contains(github.event.pull_request.labels.*.name, 'bypass-fastfail') }}
|
||||
BYPASS_FAIL_FAST: ${{ steps.ci-labels.outputs.bypass_fail_fast }}
|
||||
run: |
|
||||
if [[ "${{ steps.run-mode.outputs.run_all_tests }}" == "true" \
|
||||
|| "${{ inputs.continue_on_error }}" == "true" \
|
||||
|| "$BYPASS_FASTFAIL_LABEL" == "true" ]]; then
|
||||
|| "$BYPASS_FAIL_FAST" == "true" ]]; then
|
||||
echo "continue_on_error=true" >> $GITHUB_OUTPUT
|
||||
echo "Continue-on-error: ENABLED (run_all_tests=${{ steps.run-mode.outputs.run_all_tests }}, input=${{ inputs.continue_on_error }}, bypass-fastfail=$BYPASS_FASTFAIL_LABEL)"
|
||||
echo "Continue-on-error: ENABLED (run_all_tests=${{ steps.run-mode.outputs.run_all_tests }}, input=${{ inputs.continue_on_error }}, bypass-fail-fast=$BYPASS_FAIL_FAST)"
|
||||
else
|
||||
echo "continue_on_error=false" >> $GITHUB_OUTPUT
|
||||
echo "Continue-on-error: DISABLED"
|
||||
|
||||
Reference in New Issue
Block a user