| # A CI workflow to run tests on a daily cron job. |
| |
| name: Daily Testing |
| |
| on: |
| schedule: |
| - cron: "00 14 * * *" # Everyday at 3:00 PM UTC (8:00 AM PST) |
| |
| jobs: |
| daily_testing: |
| name: Daily Testing |
| runs-on: ubuntu-latest |
| steps: |
| - name: Setup Dart SDK |
| uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d |
| with: |
| sdk: main |
| - id: checkout |
| name: Checkout repository |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 |
| - id: dwds_pub_upgrade |
| name: dwds; dart pub upgrade |
| run: dart pub upgrade |
| if: "always() && steps.checkout.conclusion == 'success'" |
| working-directory: dwds |
| - name: dwds; dart analyze . |
| run: dart analyze . |
| if: "always() && steps.dwds_pub_upgrade.conclusion == 'success'" |
| working-directory: dwds |
| - id: dwds_daily_tests |
| name: "dwds; dart test --tags=daily" |
| run: "dart test --tags=daily" |
| if: "always() && steps.dwds_pub_upgrade.conclusion == 'success'" |
| working-directory: dwds |
| - id: webdev_pub_upgrade |
| name: webdev; dart pub upgrade |
| run: dart pub upgrade |
| if: "always() && steps.checkout.conclusion == 'success'" |
| working-directory: webdev |
| - name: webdev; dart analyze . |
| run: dart analyze . |
| if: "always() && steps.webdev_pub_upgrade.conclusion == 'success'" |
| working-directory: webdev |
| - id: webdev_daily_tests |
| name: "webdev; dart test --tags=daily" |
| run: "dart test --tags=daily" |
| if: "always() && steps.webdev_pub_upgrade.conclusion == 'success'" |
| working-directory: webdev |
| - name: "Notify failure" |
| if: "always() && steps.dwds_daily_tests.conclusion == 'failure' || steps.webdev_daily_tests.conclusion == 'failure'" |
| run: | |
| curl -H "Content-Type: application/json" -X POST -d \ |
| "{'text':'Daily Webdev tests failed! ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}'}" \ |
| "${{ secrets.WEBDEV_NOTIFICATION_CHAT_WEBHOOK }}" |