[wip] feat: willow implementation #2001
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
# Run all tests, including flaky test. | |
# | |
# The default CI workflow ignores flaky tests. This workflow will run | |
# all tests, including ignored ones. | |
# | |
# To use this workflow you can either: | |
# | |
# - Label a PR with "flaky-test", the normal CI workflow will not run | |
# any jobs but the jobs here will be run. Note that to merge the PR | |
# you'll need to remove the label eventually because the normal CI | |
# jobs are required by branch protection. | |
# | |
# - Manually trigger the workflow, you may choose a branch for this to | |
# run on. | |
# | |
# Additionally this jobs runs once a day on a schedule. | |
# | |
# Currently doctests are not run by this workflow. | |
name: Flaky CI | |
on: | |
pull_request: | |
types: [ 'labeled', 'unlabeled', 'opened', 'synchronize', 'reopened' ] | |
schedule: | |
# 06:30 UTC every day | |
- cron: '30 6 * * *' | |
workflow_dispatch: | |
inputs: | |
branch: | |
description: 'Branch to run on, defaults to main' | |
required: true | |
default: 'main' | |
type: string | |
concurrency: | |
group: flaky-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
if: "contains(github.event.pull_request.labels.*.name, 'flaky-test') || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'" | |
uses: './.github/workflows/tests.yaml' | |
with: | |
flaky: true | |
git-ref: ${{ inputs.branch }} | |
notify: | |
needs: tests | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Extract test results | |
run: | | |
printf '${{ toJSON(needs) }}\n' | |
result=$(echo '${{ toJSON(needs) }}' | jq -r .tests.result) | |
echo TESTS_RESULT=$result | |
echo "TESTS_RESULT=$result" >>"$GITHUB_ENV" | |
- name: Notify discord on failure | |
uses: n0-computer/discord-webhook-notify@v1 | |
if: ${{ env.TESTS_RESULT == 'failure' }} | |
with: | |
severity: warn | |
details: | | |
Flaky tests failed again, why don't you go fix them? | |
See https://github.com/n0-computer/iroh/actions/workflows/flaky.yaml | |
webhookUrl: ${{ secrets.DISCORD_N0_GITHUB_CHANNEL_WEBHOOK_URL }} |