mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-18 21:14:01 +08:00
Enhance action to fail on non-successful workflow runs Add logic to check the conclusion of the watched workflow run. If the run ends with a non-successful status, the action now exits with an error to improve error handling and ensure reliability. Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
53 lines
1.7 KiB
YAML
53 lines
1.7 KiB
YAML
name: 'Wait for Tests'
|
|
description: 'Action to wait for workflow tests to start and complete'
|
|
inputs:
|
|
workflow:
|
|
description: 'The workflow file name to monitor'
|
|
required: true
|
|
default: 'selfdrive_tests.yaml'
|
|
branch:
|
|
description: 'The branch to monitor (defaults to current branch)'
|
|
required: false
|
|
default: ''
|
|
github-token:
|
|
description: 'GitHub token for API access'
|
|
required: true
|
|
wait-time:
|
|
description: 'Initial sleep time in seconds before monitoring starts'
|
|
required: false
|
|
default: '30'
|
|
should-wait-for-start:
|
|
description: 'Whether to wait for tests to start'
|
|
required: false
|
|
default: false
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Wait for tests to start
|
|
if: inputs.should-wait-for-start == 'true'
|
|
shell: bash
|
|
run: |
|
|
echo "Sleeping for ${{ inputs.wait-time }} seconds to give some time for the action to start and then we'll wait"
|
|
sleep ${{ inputs.wait-time }}
|
|
|
|
- name: Wait for tests to finish
|
|
shell: bash
|
|
run: |
|
|
BRANCH="${{ inputs.branch || github.head_ref || github.ref_name }}"
|
|
|
|
echo "Looking for workflow runs of ${{ inputs.workflow }} on branch $BRANCH"
|
|
RUN_ID=$(gh run list --workflow=${{ inputs.workflow }} --branch="$BRANCH" --limit=1 --json databaseId --jq '.[0].databaseId')
|
|
echo "Watching run ID: $RUN_ID"
|
|
gh run watch "$RUN_ID"
|
|
|
|
CONCLUSION=$(gh run view "$RUN_ID" --json conclusion --jq '.conclusion')
|
|
echo "Run concluded with: $CONCLUSION"
|
|
|
|
if [[ "$CONCLUSION" != "success" ]]; then
|
|
echo "❌ Workflow run failed with conclusion: $CONCLUSION"
|
|
exit 1
|
|
fi
|
|
env:
|
|
GITHUB_TOKEN: ${{ inputs.github-token }}
|