Deflake Tests #13607
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deflake Tests | |
# Runs when the Selenum lab test or PR test workflows complete. This will run | |
# with full privileges, even if the other workflow doesn't. That allows us to | |
# trigger re-runs if we think the results might be flaky. A test run will be | |
# given up to 3 runs to succeed. | |
on: | |
workflow_run: | |
workflows: | |
- Selenium Lab Tests | |
- Build and Test | |
types: [completed] | |
jobs: | |
deflake: | |
if: ${{ github.event.workflow_run.conclusion == 'failure' }} | |
runs-on: ubuntu-latest | |
permissions: | |
# "Write" to Actions to enable rerun command. | |
actions: write | |
steps: | |
- name: Check run count and re-run workflow | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh api /repos/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }} > run.json | |
RUNS=$(jq -r .run_attempt < run.json) | |
if [[ "$RUNS" -lt 3 ]]; then | |
echo "$RUNS failed runs so far; re-running workflow." | |
gh run rerun ${{ github.event.workflow_run.id }} --failed -R ${{ github.repository }} | |
else | |
echo "$RUNS failed runs so far; not re-running workflow." | |
fi |