blob: cbade30594b64a2945fbd56cc1276a402175363f [file] [log] [blame]
# 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@d6a63dab3335f427404425de0fbfed4686d93c4f
with:
sdk: main
- id: checkout
name: Checkout repository
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- 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 }}"