diff --git a/.github/workflows/alteration-compatibility-integration-test.yml b/.github/workflows/alteration-compatibility-integration-test.yml index a29647100..ed95c1706 100644 --- a/.github/workflows/alteration-compatibility-integration-test.yml +++ b/.github/workflows/alteration-compatibility-integration-test.yml @@ -78,3 +78,16 @@ jobs: test-target: ${{ matrix.target }} db-alteration-target: ${{ github.head_ref }} pnpm-version: 9 + + # Automatically rerun the workflow since the integration tests are moody + # From this genius: https://github.com/orgs/community/discussions/67654#discussioncomment-8038649 + rerun-on-failure: + needs: run-logto + if: failure() && fromJSON(github.run_attempt) < 3 + runs-on: ubuntu-latest + steps: + - env: + GH_REPO: ${{ github.repository }} + GH_TOKEN: ${{ github.token }} + GH_DEBUG: api + run: gh workflow run rerun.yml -F run_id=${{ github.run_id }} diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 187340957..68a78c593 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -47,3 +47,16 @@ jobs: logto-artifact: integration-test-${{ github.sha }}-dev-features-${{ env.DEV_FEATURES_ENABLED }} test-target: ${{ matrix.target }} pnpm-version: 9 + + # Automatically rerun the workflow since the integration tests are moody + # From this genius: https://github.com/orgs/community/discussions/67654#discussioncomment-8038649 + rerun-on-failure: + needs: run-logto + if: failure() && fromJSON(github.run_attempt) < 3 + runs-on: ubuntu-latest + steps: + - env: + GH_REPO: ${{ github.repository }} + GH_TOKEN: ${{ github.token }} + GH_DEBUG: api + run: gh workflow run rerun.yml -F run_id=${{ github.run_id }} diff --git a/.github/workflows/rerun.yml b/.github/workflows/rerun.yml new file mode 100644 index 000000000..2a7c83631 --- /dev/null +++ b/.github/workflows/rerun.yml @@ -0,0 +1,18 @@ +# From this genius: https://github.com/orgs/community/discussions/67654#discussioncomment-8038649 +on: + workflow_dispatch: + inputs: + run_id: + required: true +jobs: + rerun: + runs-on: ubuntu-latest + steps: + - name: rerun ${{ inputs.run_id }} + env: + GH_REPO: ${{ github.repository }} + GH_TOKEN: ${{ github.token }} + GH_DEBUG: api + run: | + gh run watch ${{ inputs.run_id }} > /dev/null 2>&1 + gh run rerun ${{ inputs.run_id }} --failed