@@ -29,6 +29,24 @@ concurrency:
2929
3030jobs :
3131 # All Rust jobs run in parallel, sharing cache from previous runs
32+ build :
33+ name : Build
34+ runs-on : platform-runner
35+ steps :
36+ - uses : actions/checkout@v4
37+ - uses : dtolnay/rust-toolchain@stable
38+ - name : Install build dependencies
39+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
40+ steps :
41+ - uses : actions/checkout@v4
42+ - uses : dtolnay/rust-toolchain@stable
43+ - name : Install build dependencies
44+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
45+ steps :
46+ - uses : actions/checkout@v4
47+ - uses : dtolnay/rust-toolchain@stable
48+ - name : Install build dependencies
49+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
3250 build :
3351 name : Build
3452 runs-on : platform-runner
4260 shared-key : " platform-ci"
4361 - run : cargo build --release
4462
63+ clippy :
64+ name : Clippy
65+ runs-on : platform-runner
66+ steps :
67+ - uses : actions/checkout@v4
68+ - uses : dtolnay/rust-toolchain@stable
69+ - name : Install build dependencies
70+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
4571 clippy :
4672 name : Clippy
4773 runs-on : platform-runner
5682 save-if : false
5783 - run : cargo clippy --all-targets --workspace -- -W clippy::all
5884
85+ test :
86+ name : Test
87+ runs-on : platform-runner
88+ steps :
89+ - uses : actions/checkout@v4
90+ - uses : dtolnay/rust-toolchain@stable
91+ - name : Install build dependencies
92+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
5993 test :
6094 name : Test
6195 runs-on : platform-runner
@@ -73,6 +107,15 @@ jobs:
73107 - name : Run tests
74108 run : cargo nextest run --workspace -E 'not (test(/live/) | test(/integration/) | test(/e2e/))'
75109
110+ integration :
111+ name : Integration
112+ runs-on : platform-runner
113+ needs : [build, clippy, test]
114+ steps :
115+ - uses : actions/checkout@v4
116+ - uses : dtolnay/rust-toolchain@stable
117+ - name : Install build dependencies
118+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
76119 integration :
77120 name : Integration
78121 runs-on : platform-runner
@@ -92,6 +135,15 @@ jobs:
92135 - name : Run integration tests
93136 run : cargo nextest run --workspace -E 'test(/integration/)'
94137
138+ e2e :
139+ name : E2E
140+ runs-on : platform-runner
141+ needs : [build, clippy, test]
142+ steps :
143+ - uses : actions/checkout@v4
144+ - uses : dtolnay/rust-toolchain@stable
145+ - name : Install build dependencies
146+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
95147 e2e :
96148 name : E2E
97149 runs-on : platform-runner
@@ -113,6 +165,10 @@ jobs:
113165
114166 # Coverage runs in a separate job with its own concurrency group
115167 # This prevents coverage deployment from being cancelled by new commits
168+ coverage :
169+ name : Coverage
170+ runs-on : platform-runner
171+ if : github.ref == 'refs/heads/main'
116172 coverage :
117173 name : Coverage
118174 runs-on : platform-runner
@@ -174,13 +230,29 @@ jobs:
174230 keep_files : true
175231
176232 # Docker only runs after build, clippy and test pass
233+ docker :
234+ name : Docker
235+ runs-on : platform-runner
236+ needs : [build, clippy, test]
177237 docker :
178238 name : Docker
179239 runs-on : platform-runner
180240 needs : [build, clippy, test]
181241 permissions :
182242 contents : read
183243 packages : write
244+ steps :
245+ - uses : actions/checkout@v4
246+ - name : Ensure Docker available
247+ run : scripts/install-docker.sh
248+ - name : Install build dependencies
249+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
250+ steps :
251+ - uses : actions/checkout@v4
252+ - name : Ensure Docker available
253+ run : scripts/install-docker.sh
254+ - name : Install build dependencies
255+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
184256 steps :
185257 - uses : actions/checkout@v4
186258 - name : Ensure Docker available
@@ -217,6 +289,10 @@ jobs:
217289 cache-to : type=gha,mode=max
218290
219291 # Release only on tags, after all checks pass
292+ release :
293+ name : Release
294+ runs-on : platform-runner
295+ needs : [build, clippy, test, docker]
220296 release :
221297 name : Release
222298 runs-on : platform-runner
@@ -242,6 +318,9 @@ jobs:
242318 files : platform-${{ github.ref_name }}-linux-x86_64.tar.gz
243319 generate_release_notes : true
244320
321+ nightly :
322+ name : Nightly Build & Test
323+ runs-on : platform-runner
245324 nightly :
246325 name : Nightly Build & Test
247326 runs-on : platform-runner
@@ -251,6 +330,11 @@ jobs:
251330 PLATFORM_RUST_NIGHTLY : " 1"
252331 PLATFORM_NIGHTLY_RUSTFLAGS : " -Z threads=0"
253332 PLATFORM_FAST_LINKER_RUSTFLAGS : " -C link-arg=-fuse-ld=mold"
333+ steps :
334+ - uses : actions/checkout@v4
335+ - uses : dtolnay/rust-toolchain@nightly
336+ - name : Install build dependencies
337+ run : sudo apt-get update && sudo apt-get install -y bash ripgrep
254338 steps :
255339 - uses : actions/checkout@v4
256340 - uses : dtolnay/rust-toolchain@nightly
@@ -270,6 +354,9 @@ jobs:
270354 - name : Nightly tests
271355 run : cargo nextest run --workspace -E 'not (test(/live/) | test(/integration/) | test(/e2e/))'
272356
357+ docker-nightly :
358+ name : Docker Nightly Build
359+ runs-on : platform-runner
273360 docker-nightly :
274361 name : Docker Nightly Build
275362 runs-on : platform-runner
0 commit comments