@@ -116,6 +116,7 @@ jobs:
116116 # rerun the workflow run after setting the `release-ci`/`merge-ci` labels.
117117 run : |
118118 check_level=0
119+ fast=false
119120
120121 if [[ -n "${{ steps.set-nightly.outputs.nightly }}" || -n "${{ steps.set-release.outputs.RELEASE_TAG }}" || -n "${{ steps.set-release-custom.outputs.RELEASE_TAG }}" ]]; then
121122 check_level=2
@@ -128,9 +129,13 @@ jobs:
128129 elif echo "$labels" | grep -q "merge-ci"; then
129130 check_level=1
130131 fi
132+ if echo "$labels" | grep -q "fast-ci"; then
133+ fast=true
134+ fi
131135 fi
132136
133137 echo "check-level=$check_level" >> "$GITHUB_OUTPUT"
138+ echo "fast=$fast" >> "$GITHUB_OUTPUT"
134139 env :
135140 GH_TOKEN : ${{ github.token }}
136141
@@ -140,7 +145,8 @@ jobs:
140145 with :
141146 script : |
142147 const level = ${{ steps.set-level.outputs.check-level }};
143- console.log(`level: ${level}`);
148+ const fast = ${{ steps.set-level.outputs.fast }};
149+ console.log(`level: ${level}, fast: ${fast}`);
144150 // use large runners where available (original repo)
145151 let large = ${{ github.repository == 'leanprover/lean4' }};
146152 const isPr = "${{ github.event_name }}" == "pull_request";
@@ -165,7 +171,8 @@ jobs:
165171 {
166172 // portable release build: use channel with older glibc (2.26)
167173 "name": "Linux release",
168- "os": "ubuntu-latest",
174+ // usually not a bottleneck so make exclusive to `fast-ci`
175+ "os": large && fast ? "nscloud-ubuntu-22.04-amd64-8x16-with-cache" : "ubuntu-latest",
169176 "release": true,
170177 // Special handling for release jobs. We want:
171178 // 1. To run it in PRs so developers get PR toolchains (so secondary without tests is sufficient)
@@ -230,7 +237,7 @@ jobs:
230237 {
231238 "name": "macOS aarch64",
232239 // standard GH runner only comes with 7GB so use large runner if possible when running tests
233- "os": large && level >= 1 ? "nscloud-macos-sequoia-arm64-6x14" : "macos-15",
240+ "os": large && (fast || level >= 1) ? "nscloud-macos-sequoia-arm64-6x14" : "macos-15",
234241 "CMAKE_OPTIONS": "-DLEAN_INSTALL_SUFFIX=-darwin_aarch64",
235242 "release": true,
236243 "shell": "bash -euxo pipefail {0}",
@@ -245,7 +252,7 @@ jobs:
245252 },
246253 {
247254 "name": "Windows",
248- "os": large && level == 2 ? "namespace-profile-windows-amd64-4x16" : "windows-2022",
255+ "os": large && (fast || level == 2) ? "namespace-profile-windows-amd64-4x16" : "windows-2022",
249256 "release": true,
250257 "enabled": level >= 2,
251258 "test": true,
0 commit comments