Skip to content

Commit dc7c184

Browse files
committed
chore: CI: introduce fast-ci label
1 parent e43ff50 commit dc7c184

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

.github/workflows/ci.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)