## # Performs follow-up tasks when a workflow fails or is cancelled. ## name: Failed Workflow on: workflow_dispatch: inputs: run_id: description: 'ID of the GitHub Action workflow run to rerun' required: true type: 'string' jobs: # Attempts to rerun a workflow. # # Performs the following steps: # - Retrieves the workflow run that dispatched this workflow. # - Restarts all failed jobs when the workflow fails or is cancelled for the first time. failed-workflow: name: Rerun a workflow runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Rerun a workflow uses: actions/github-script@c713e510dbd7d213d92d41b7a7805a986f4c5c66 # v6.2.0 with: script: | const workflow_run = await github.rest.actions.getWorkflowRun({ owner: context.repo.owner, repo: context.repo.repo, run_id: ${{ inputs.run_id }}, }); // Only rerun after the first run attempt. if ( workflow_run.data.run_attempt > 1 ) { return; } const rerun = await github.rest.actions.reRunWorkflowFailedJobs({ owner: context.repo.owner, repo: context.repo.repo, run_id: ${{ inputs.run_id }}, });