Skip to content

Commit 50868db

Browse files
skip[ci]: use pre-build images (#6994)
Use prebuild images for more jobs. --------- Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
1 parent b921999 commit 50868db

2 files changed

Lines changed: 62 additions & 60 deletions

File tree

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,49 @@
11
name: "Setup Prebuild"
2-
description: "Minimal setup for runners with pre-built Rust toolchain, nextest, and sccache"
2+
description: "Prebuild AMIs — uses pre-installed tools, falls back to full setup-rust for forks"
3+
4+
inputs:
5+
repo-token:
6+
description: "GitHub token for accessing the repository (typically secrets.GITHUB_TOKEN)"
7+
required: false
8+
default: "${{ github.token }}"
9+
toolchain:
10+
description: "optional override for the toolchain version (e.g. nightly)"
11+
required: false
12+
components:
13+
description: "optional override for the components to install for the step (e.g. clippy, rustfmt, miri)"
14+
default: "clippy, rustfmt"
15+
required: false
16+
targets:
17+
description: "optional targets override (e.g. wasm32-unknown-unknown)"
18+
required: false
19+
enable-sccache:
20+
description: "Should sccache be enabled, true by default."
21+
required: false
22+
default: "true"
323

424
runs:
525
using: "composite"
626
steps:
27+
# Prebuild path: tools already installed, just configure sccache
728
- name: Configure sccache timeout
29+
if: github.repository == 'vortex-data/vortex' && inputs.enable-sccache == 'true'
830
shell: bash
931
run: |
1032
mkdir -p ~/.config/sccache
1133
echo 'server_startup_timeout_ms = 15000' > ~/.config/sccache/config
1234
1335
- name: Pre-start sccache server
36+
if: github.repository == 'vortex-data/vortex' && inputs.enable-sccache == 'true'
1437
shell: bash
1538
run: sccache --start-server &
39+
40+
# Fallback path: full setup for forks
41+
- name: Full Rust setup
42+
if: github.repository != 'vortex-data/vortex'
43+
uses: ./.github/actions/setup-rust
44+
with:
45+
repo-token: ${{ inputs.repo-token }}
46+
toolchain: ${{ inputs.toolchain }}
47+
components: ${{ inputs.components }}
48+
targets: ${{ inputs.targets }}
49+
enable-sccache: ${{ inputs.enable-sccache }}

.github/workflows/ci.yml

Lines changed: 27 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -174,17 +174,15 @@ jobs:
174174
timeout-minutes: 120
175175
runs-on: >-
176176
${{ github.repository == 'vortex-data/vortex'
177-
&& format('runs-on={0}/runner=amd64-small/tag=rust-docs', github.run_id)
177+
&& format('runs-on={0}/runner=amd64-small/image=ubuntu24-full-x64-pre/tag=rust-docs', github.run_id)
178178
|| 'ubuntu-latest' }}
179179
steps:
180180
- uses: runs-on/action@v2
181181
if: github.repository == 'vortex-data/vortex'
182182
with:
183183
sccache: s3
184184
- uses: actions/checkout@v6
185-
- uses: ./.github/actions/setup-rust
186-
with:
187-
repo-token: ${{ secrets.GITHUB_TOKEN }}
185+
- uses: ./.github/actions/setup-prebuild
188186
- name: Docs
189187
run: |
190188
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
@@ -196,7 +194,7 @@ jobs:
196194
timeout-minutes: 120
197195
runs-on: >-
198196
${{ github.repository == 'vortex-data/vortex'
199-
&& format('runs-on={0}/runner={1}/tag={2}', github.run_id, matrix.config.runner, matrix.config.name)
197+
&& format('runs-on={0}/runner={1}/image=ubuntu24-full-x64-pre/tag={2}', github.run_id, matrix.config.runner, matrix.config.name)
200198
|| 'ubuntu-latest' }}
201199
env:
202200
# disable lints for build, they will be caught in Rust lint job.
@@ -227,10 +225,7 @@ jobs:
227225
with:
228226
sccache: s3
229227
- uses: actions/checkout@v6
230-
- id: setup-rust
231-
uses: ./.github/actions/setup-rust
232-
with:
233-
repo-token: ${{ secrets.GITHUB_TOKEN }}
228+
- uses: ./.github/actions/setup-prebuild
234229
- name: Install wasm32 target
235230
if: ${{ matrix.config.target == 'wasm32-unknown-unknown' }}
236231
run: rustup target add wasm32-unknown-unknown
@@ -249,17 +244,15 @@ jobs:
249244
timeout-minutes: 120
250245
runs-on: >-
251246
${{ github.repository == 'vortex-data/vortex'
252-
&& format('runs-on={0}/runner=amd64-medium/tag=rust-min-deps', github.run_id)
247+
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre/tag=rust-min-deps', github.run_id)
253248
|| 'ubuntu-latest' }}
254249
steps:
255250
- uses: runs-on/action@v2
256251
if: github.repository == 'vortex-data/vortex'
257252
with:
258253
sccache: s3
259254
- uses: actions/checkout@v6
260-
- uses: ./.github/actions/setup-rust
261-
with:
262-
repo-token: ${{ secrets.GITHUB_TOKEN }}
255+
- uses: ./.github/actions/setup-prebuild
263256
- uses: taiki-e/install-action@cargo-hack
264257
- uses: taiki-e/install-action@cargo-minimal-versions
265258
- run: cargo minimal-versions check --direct --workspace --ignore-private
@@ -278,8 +271,6 @@ jobs:
278271
sccache: s3
279272
- uses: actions/checkout@v6
280273
- uses: ./.github/actions/setup-prebuild
281-
- name: Install protoc
282-
uses: ./.github/actions/setup-protoc
283274
- name: Install nightly for fmt
284275
run: rustup toolchain install $NIGHTLY_TOOLCHAIN --component rustfmt
285276
- name: Rust Lint - Format
@@ -311,18 +302,15 @@ jobs:
311302
timeout-minutes: 120
312303
runs-on: >-
313304
${{ github.repository == 'vortex-data/vortex'
314-
&& format('runs-on={0}/runner=amd64-medium/tag=rust-lint-no-default', github.run_id)
305+
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre/tag=rust-lint-no-default', github.run_id)
315306
|| 'ubuntu-latest' }}
316307
steps:
317308
- uses: runs-on/action@v2
318309
if: github.repository == 'vortex-data/vortex'
319310
with:
320311
sccache: s3
321312
- uses: actions/checkout@v6
322-
- id: setup-rust
323-
uses: ./.github/actions/setup-rust
324-
with:
325-
repo-token: ${{ secrets.GITHUB_TOKEN }}
313+
- uses: ./.github/actions/setup-prebuild
326314
- name: Install cargo-hack
327315
uses: taiki-e/install-action@cargo-hack
328316
- name: Rust Lint - Clippy No Default Features
@@ -335,18 +323,17 @@ jobs:
335323
timeout-minutes: 120
336324
runs-on: >-
337325
${{ github.repository == 'vortex-data/vortex'
338-
&& format('runs-on={0}/runner=amd64-xsmall/tag=public-api', github.run_id)
326+
&& format('runs-on={0}/runner=amd64-xsmall/image=ubuntu24-full-x64-pre/tag=public-api', github.run_id)
339327
|| 'ubuntu-latest' }}
340328
steps:
341329
- uses: runs-on/action@v2
342330
if: github.repository == 'vortex-data/vortex'
343331
with:
344332
sccache: s3
345333
- uses: actions/checkout@v6
346-
- uses: ./.github/actions/setup-rust
347-
with:
348-
repo-token: ${{ secrets.GITHUB_TOKEN }}
349-
toolchain: ${{ env.NIGHTLY_TOOLCHAIN }}
334+
- uses: ./.github/actions/setup-prebuild
335+
- name: Install nightly for public-api
336+
run: rustup toolchain install $NIGHTLY_TOOLCHAIN
350337
- name: Regenerate public API lock files
351338
run: cargo +$NIGHTLY_TOOLCHAIN xtask public-api
352339
- name: Verify lock files are up to date
@@ -376,7 +363,7 @@ jobs:
376363
- suite: tests
377364
runs-on: >-
378365
${{ github.repository == 'vortex-data/vortex'
379-
&& format('runs-on={0}/runner=amd64-large/tag=rust-coverage-suite-{1}', github.run_id, matrix.suite)
366+
&& format('runs-on={0}/runner=amd64-large/image=ubuntu24-full-x64-pre/tag=rust-coverage-suite-{1}', github.run_id, matrix.suite)
380367
|| 'ubuntu-latest' }}
381368
env:
382369
RUSTFLAGS: "-Cinstrument-coverage -A warnings"
@@ -389,10 +376,7 @@ jobs:
389376
with:
390377
sccache: s3
391378
- uses: actions/checkout@v6
392-
- id: setup-rust
393-
uses: ./.github/actions/setup-rust
394-
with:
395-
repo-token: ${{ secrets.GITHUB_TOKEN }}
379+
- uses: ./.github/actions/setup-prebuild
396380
- name: Install grcov
397381
uses: taiki-e/install-action@grcov
398382
- name: Install nextest
@@ -430,7 +414,7 @@ jobs:
430414
timeout-minutes: 120
431415
runs-on: >-
432416
${{ github.repository == 'vortex-data/vortex'
433-
&& format('runs-on={0}/runner=amd64-medium/tag=rust-test-sanitizer', github.run_id)
417+
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre/tag=rust-test-sanitizer', github.run_id)
434418
|| 'ubuntu-latest' }}
435419
env:
436420
# Add debug symbols and enable ASAN/LSAN with better output
@@ -455,16 +439,11 @@ jobs:
455439
with:
456440
compiler: llvm
457441
cache-tools: true
458-
- id: setup-rust
459-
uses: ./.github/actions/setup-rust
460-
with:
461-
repo-token: ${{ secrets.GITHUB_TOKEN }}
462-
toolchain: ${{ env.NIGHTLY_TOOLCHAIN }}
463-
components: "rust-src, rustfmt, clippy, llvm-tools-preview"
464-
- name: Install build dependencies
442+
- uses: ./.github/actions/setup-prebuild
443+
- name: Install nightly for sanitizer
465444
run: |
466-
sudo apt-get update
467-
sudo apt-get install -y ninja-build cmake
445+
rustup toolchain install $NIGHTLY_TOOLCHAIN
446+
rustup component add --toolchain $NIGHTLY_TOOLCHAIN rust-src rustfmt clippy llvm-tools-preview
468447
- name: Install nextest
469448
uses: taiki-e/install-action@v2
470449
with:
@@ -709,7 +688,7 @@ jobs:
709688
timeout-minutes: 120
710689
runs-on: >-
711690
${{ github.repository == 'vortex-data/vortex'
712-
&& format('runs-on={0}/runner=amd64-medium/tag=bench-codspeed-{1}', github.run_id, matrix.shard)
691+
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre/tag=bench-codspeed-{1}', github.run_id, matrix.shard)
713692
|| 'ubuntu-latest' }}
714693
steps:
715694
- uses: runs-on/action@v2
@@ -719,9 +698,7 @@ jobs:
719698
- uses: actions/checkout@v6
720699
- name: Setup benchmark environment
721700
run: sudo bash scripts/setup-benchmark.sh
722-
- uses: ./.github/actions/setup-rust
723-
with:
724-
repo-token: ${{ secrets.GITHUB_TOKEN }}
701+
- uses: ./.github/actions/setup-prebuild
725702
- uses: ./.github/actions/system-info
726703
- name: Install Codspeed
727704
uses: taiki-e/cache-cargo-install-action@24c4eaa867646941dd8cd6f08c1497ea68d732ba
@@ -760,18 +737,15 @@ jobs:
760737
timeout-minutes: 120
761738
runs-on: >-
762739
${{ github.repository == 'vortex-data/vortex'
763-
&& format('runs-on={0}/runner=amd64-medium/tag=cxx-build', github.run_id)
740+
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre/tag=cxx-build', github.run_id)
764741
|| 'ubuntu-latest' }}
765742
steps:
766743
- uses: runs-on/action@v2
767744
if: github.repository == 'vortex-data/vortex'
768745
with:
769746
sccache: s3
770747
- uses: actions/checkout@v6
771-
- id: setup-rust
772-
uses: ./.github/actions/setup-rust
773-
with:
774-
repo-token: ${{ secrets.GITHUB_TOKEN }}
748+
- uses: ./.github/actions/setup-prebuild
775749
- name: Build and run C++ unit tests
776750
run: |
777751
mkdir -p vortex-cxx/build
@@ -791,18 +765,15 @@ jobs:
791765
name: "SQL logic tests"
792766
runs-on: >-
793767
${{ github.repository == 'vortex-data/vortex'
794-
&& format('runs-on={0}/runner=amd64-medium/tag=sql-logic-test', github.run_id)
768+
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre/tag=sql-logic-test', github.run_id)
795769
|| 'ubuntu-latest' }}
796770
steps:
797771
- uses: runs-on/action@v2
798772
if: github.repository == 'vortex-data/vortex'
799773
with:
800774
sccache: s3
801775
- uses: actions/checkout@v6
802-
- id: setup-rust
803-
uses: ./.github/actions/setup-rust
804-
with:
805-
repo-token: ${{ secrets.GITHUB_TOKEN }}
776+
- uses: ./.github/actions/setup-prebuild
806777
- name: Install uv
807778
uses: spiraldb/actions/.github/actions/setup-uv@0.18.5
808779
with:
@@ -920,18 +891,15 @@ jobs:
920891
timeout-minutes: 120
921892
runs-on: >-
922893
${{ github.repository == 'vortex-data/vortex'
923-
&& format('runs-on={0}/runner=amd64-xsmall/tag=rust-publish-dry-run', github.run_id)
894+
&& format('runs-on={0}/runner=amd64-xsmall/image=ubuntu24-full-x64-pre/tag=rust-publish-dry-run', github.run_id)
924895
|| 'ubuntu-latest' }}
925896
steps:
926897
- uses: runs-on/action@v2
927898
if: github.repository == 'vortex-data/vortex'
928899
with:
929900
sccache: s3
930901
- uses: actions/checkout@v6
931-
- id: setup-rust
932-
uses: ./.github/actions/setup-rust
933-
with:
934-
repo-token: ${{ secrets.GITHUB_TOKEN }}
902+
- uses: ./.github/actions/setup-prebuild
935903
- name: Install cargo-edit
936904
uses: taiki-e/cache-cargo-install-action@24c4eaa867646941dd8cd6f08c1497ea68d732ba
937905
with:

0 commit comments

Comments
 (0)