# This config is automatically deployed by cloudbuild/deploy_cron_jobs.sh.
#
# To manually deploy this config, run:
#   gcloud app deploy --project flutter-dashboard cron.yaml
cron:
- description: retrieve missing commits
  url: /api/vacuum-github-commits
  schedule: every 6 hours

- description: retrieve missing commits v2
  url: /api/v2/vacuum-github-commits
  schedule: every 6 hours

# TODO(keyonghan): will delete if `In Progress` hanging issue is resolved:
# https://github.com/flutter/flutter/issues/120395#issuecomment-1444810718
- description: vacuum stale tasks
  url: /api/scheduler/vacuum-stale-tasks
  schedule: every 12 hours

- description: backfills builds
  url: /api/scheduler/batch-backfiller
  schedule: every 5 minutes

- description: backfills builds via the build bucket v2 api
  url: /api/v2/scheduler/batch-backfiller
  schedule: every 5 minutes

- description: sends build status to GitHub to annotate flutter PRs and commits
  url: /api/push-build-status-to-github?repo=flutter/flutter
  schedule: every 1 minutes

- description: sends pr-specific gold status to GitHub to annotate flutter and engine PRs and commits
  url: /api/push-gold-status-to-github
  schedule: every 5 minutes

- description: sends build status to GitHub to annotate engine PRs and commits
  url: /api/push-build-status-to-github?repo=flutter/engine
  schedule: every 2 minutes

- description: sends build status to GitHub to annotate packages PRs and commits
  url: /api/push-build-status-to-github?repo=flutter/packages
  schedule: every 2 minutes

- description: push github rate limit history to bigquery
  url: /api/public/github-rate-limit-status
  schedule: every 1 minutes

- description: detect and flag tests with high flaky rates 1
  url: /api/file_flaky_issue_and_pr?threshold=0.02
  schedule: every wednesday 9:00

- description: detect and flag tests with high flaky rates 2
  url: /api/file_flaky_issue_and_pr?threshold=0.02
  schedule: every wednesday 9:30

- description: detect and flag tests with high flaky rates 3
  url: /api/file_flaky_issue_and_pr?threshold=0.02
  schedule: every wednesday 10:00

- description: detect and flag tests with high flaky rates 4
  url: /api/file_flaky_issue_and_pr?threshold=0.02
  schedule: every wednesday 10:30

- description: detect and flag tests with high flaky rates 5
  url: /api/file_flaky_issue_and_pr?threshold=0.02
  schedule: every wednesday 11:00

- description: update existing flake issues with latest statistics
  url: /api/update_existing_flaky_issues?threshold=0.02
  schedule: every wednesday 9:10

- description: check flaky builders to either deflake the builder or file a new flaky bug
  url: /api/check_flaky_builders
  schedule: every wednesday 9:20

- description: update branches to reflect most recent commit activity
  url: '/api/update-branches'
  schedule: every wednesday 19:00

- description: check pull requests in the autosubmit bot
  url: /check-pull-request
  target: auto-submit
  schedule: every 1 minutes

- description: check revert requests in the autosubmit bot
  url: /check-revert-requests
  target: auto-submit
  schedule: every 1 minutes
