diff --git a/.github/workflows/cache-warm.yml b/.github/workflows/cache-warm.yml index f71002fe2..bbb176158 100644 --- a/.github/workflows/cache-warm.yml +++ b/.github/workflows/cache-warm.yml @@ -13,6 +13,9 @@ on: jobs: warm-cache: + # Skipped while the mini is away (KEYPATH_CI_RUNNER=hosted); a self-hosted + # job with no runner online just queues. See the header of ci.yml. + if: vars.KEYPATH_CI_RUNNER != 'hosted' runs-on: [self-hosted, macOS, keypath, swiftpm-safe] timeout-minutes: 5 steps: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3bb8fc1b..68f915023 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,8 +15,8 @@ concurrency: # mini. Job names, and so the required checks, are the same either way. # gh variable set KEYPATH_CI_RUNNER --repo malpern/KeyPath --body hosted # gh variable delete KEYPATH_CI_RUNNER --repo malpern/KeyPath -# Only ci.yml has the fallback; coverage, cache-warm and runner-health are -# scheduled jobs that stay on the mini and don't gate PRs. +# Only ci.yml has the fallback. coverage, cache-warm and runner-health are +# mini-only jobs that do not gate PRs; they skip while this variable is set. # GitHub counts a skipped check as passing, so the required checks must never be # skipped. `build-and-test` and `code-quality` at the bottom of this file always run diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index efe44f000..44a0596e6 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -11,6 +11,9 @@ concurrency: jobs: narrow-coverage: + # Skipped while the mini is away (KEYPATH_CI_RUNNER=hosted); a self-hosted + # job with no runner online just queues. See the header of ci.yml. + if: vars.KEYPATH_CI_RUNNER != 'hosted' runs-on: [self-hosted, macOS, keypath, swiftpm-safe] timeout-minutes: 10 env: @@ -108,7 +111,8 @@ jobs: # serializes them; `if: always()` still surfaces full numbers when the narrow # floor regresses or a filtered test fails. needs: [narrow-coverage] - if: always() + # Also skipped while the mini is away (KEYPATH_CI_RUNNER=hosted); see ci.yml. + if: always() && vars.KEYPATH_CI_RUNNER != 'hosted' timeout-minutes: 40 steps: - name: Clean stale git credentials diff --git a/.github/workflows/runner-health.yml b/.github/workflows/runner-health.yml index 52b9527e8..6b59e8023 100644 --- a/.github/workflows/runner-health.yml +++ b/.github/workflows/runner-health.yml @@ -7,6 +7,9 @@ on: jobs: ping: + # Skipped while the mini is away (KEYPATH_CI_RUNNER=hosted); a self-hosted + # job with no runner online just queues. See the header of ci.yml. + if: vars.KEYPATH_CI_RUNNER != 'hosted' runs-on: [self-hosted, macOS, keypath] timeout-minutes: 2 steps: