Skip to content

Instantly share code, notes, and snippets.

@andyfeller
Created November 18, 2021 17:50
Show Gist options
  • Save andyfeller/7cf991f5f086ba1ccda5971fb590cf2f to your computer and use it in GitHub Desktop.
Save andyfeller/7cf991f5f086ba1ccda5971fb590cf2f to your computer and use it in GitHub Desktop.
Using GitHub Action workflow to retrigger a workflow that failed
name: fail
on:
workflow_dispatch:
inputs:
fail:
description: whether to fail the workflow
type: boolean
default: false
jobs:
fail:
runs-on: ubuntu-latest
steps:
- name: Intentional fail
if: ${{ github.event.inputs.fail == 'true' }}
run: |
bash -c 'exit 1'
- name: Success
run: |
echo 'Success!'
name: retrigger-fail
on:
workflow_run:
workflows: ["fail"]
types: [completed]
jobs:
on-failure:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Retrigger workflow without fail condition
env:
GITHUB_TOKEN: ${{ secrets.GH_CLI_TOKEN }}
run: |
gh workflow run fail --ref ${{ github.ref_name }} --field fail=false
@andyfeller
Copy link
Author

${{ secrets.GH_CLI_TOKEN }} is a Personal Access Token (PAT)?

@dennisroche : yeah it is. there used to be a restriction of GitHub Action workflows that you couldn't trigger workflows based from the automatic token generated for the workflow, however I'm not seeing that limitation anymore within https://docs.github.com/en/enterprise-cloud@latest/actions/using-workflows/events-that-trigger-workflows#workflow_run

It seems like they have limited nesting of calls 🤷

@dennisroche
Copy link

dennisroche commented May 12, 2022

@andyfeller

that restriction is still unfortunately in place.

events triggered by the GITHUB_TOKEN will not create a new workflow run

https://docs.github.com/en/enterprise-cloud@latest/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow

this limits actions from pushing a commit with generated files or automatic fixes 😢. github support linked me this gist as a possible workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment