diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 965d6679..ac4e2610 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,10 +84,15 @@ on: # Rebuild 'main' every week. This will account for changes to dependencies # and to Rust, either of which can trigger new failures. Rust releases are - # every 6 weeks, on a Thursday; this event runs every Friday. + # every 6 weeks, on a Thursday; this event runs every Friday. We use this + # moment to update CI caches. schedule: - cron: '0 10 * * FRI' + # Allow manual execution of CI, primarily for debugging. We consider these + # rare and also update CI caches when they occur. + workflow_dispatch: + defaults: run: shell: bash @@ -300,7 +305,7 @@ jobs: # Restore a cached `target/`. - name: Restore from cache - if: github.event_name != 'schedule' + if: github.event_name != 'schedule' && github.event_name != 'workflow_dispatch' id: cache-restore uses: actions/cache/restore@v6 with: @@ -329,7 +334,7 @@ jobs: # Note the Rust version in the cache. - name: Note Rust version for the cache - if: github.event_name == 'schedule' + if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' run: | # NOTE: `rustc --version --verbose` also prints a `commit-date`, which # is easier to parse, but it is unclear whether it perfectly matches @@ -347,7 +352,7 @@ jobs: # Save to the cache every week. - name: Save to the cache uses: actions/cache/save@v6 - if: github.event_name == 'schedule' + if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' with: path: | ~/.cargo @@ -418,7 +423,7 @@ jobs: # Save to the cache. - name: Save to the cache - if: github.event_name == 'schedule' + if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' uses: actions/cache/save@v6 with: path: |