Skip to content

Commit e73a4ea

Browse files
authored
ci(os-49): draft release runner cutover (#1164)
1 parent 9efb346 commit e73a4ea

7 files changed

Lines changed: 44 additions & 39 deletions

File tree

‎.github/workflows/deb-package.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ jobs:
2525
matrix:
2626
include:
2727
- arch: amd64
28-
runner: build-amd64
28+
runner: linux-amd64-cpu8
2929
deb_arch: amd64
3030
cli_target: x86_64-unknown-linux-musl
3131
gnu_target: x86_64-unknown-linux-gnu
3232
- arch: arm64
33-
runner: build-arm64
33+
runner: linux-arm64-cpu8
3434
deb_arch: arm64
3535
cli_target: aarch64-unknown-linux-musl
3636
gnu_target: aarch64-unknown-linux-gnu

‎.github/workflows/driver-vm-linux.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ defaults:
2424
jobs:
2525
download-kernel-runtime:
2626
name: Download Kernel Runtime
27-
runs-on: build-amd64
27+
runs-on: linux-amd64-cpu8
2828
timeout-minutes: 10
2929
container:
3030
image: ghcr.io/nvidia/openshell/ci:latest
@@ -82,12 +82,12 @@ jobs:
8282
matrix:
8383
include:
8484
- arch: arm64
85-
runner: build-arm64
85+
runner: linux-arm64-cpu8
8686
target: aarch64-unknown-linux-gnu
8787
platform: linux-aarch64
8888
guest_arch: aarch64
8989
- arch: amd64
90-
runner: build-amd64
90+
runner: linux-amd64-cpu8
9191
target: x86_64-unknown-linux-gnu
9292
platform: linux-x86_64
9393
guest_arch: x86_64

‎.github/workflows/release-canary.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ jobs:
3333
matrix:
3434
include:
3535
- arch: amd64
36-
runner: build-amd64
36+
runner: linux-amd64-cpu8
3737
- arch: arm64
38-
runner: build-arm64
38+
runner: linux-arm64-cpu8
3939
runs-on: ${{ matrix.runner }}
4040
timeout-minutes: 10
4141
container:
@@ -81,10 +81,10 @@ jobs:
8181
- two-step
8282
include:
8383
- arch: amd64
84-
runner: build-amd64
84+
runner: linux-amd64-cpu8
8585
target: x86_64-unknown-linux-musl
8686
- arch: arm64
87-
runner: build-arm64
87+
runner: linux-arm64-cpu8
8888
target: aarch64-unknown-linux-musl
8989
runs-on: ${{ matrix.runner }}
9090
timeout-minutes: 30

‎.github/workflows/release-dev.yml‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
# ---------------------------------------------------------------------------
2020
compute-versions:
2121
name: Compute Versions
22-
runs-on: build-amd64
22+
runs-on: linux-amd64-cpu8
2323
timeout-minutes: 5
2424
container:
2525
image: ghcr.io/nvidia/openshell/ci:latest
@@ -75,12 +75,12 @@ jobs:
7575
uses: ./.github/workflows/e2e-test.yml
7676
with:
7777
image-tag: ${{ github.sha }}
78-
runner: build-arm64
78+
runner: linux-arm64-cpu8
7979

8080
tag-ghcr-dev:
8181
name: Tag GHCR Images as Dev
8282
needs: [build-gateway, build-supervisor, build-cluster]
83-
runs-on: build-amd64
83+
runs-on: linux-amd64-cpu8
8484
timeout-minutes: 10
8585
steps:
8686
- name: Log in to GHCR
@@ -105,12 +105,12 @@ jobs:
105105
matrix:
106106
include:
107107
- arch: amd64
108-
runner: build-amd64
108+
runner: linux-amd64-cpu8
109109
artifact: linux-amd64
110110
task: python:build:linux:amd64
111111
output_path: target/wheels/linux-amd64/*.whl
112112
- arch: arm64
113-
runner: build-arm64
113+
runner: linux-arm64-cpu8
114114
artifact: linux-arm64
115115
task: python:build:linux:arm64
116116
output_path: target/wheels/linux-arm64/*.whl
@@ -160,7 +160,7 @@ jobs:
160160
build-python-wheel-macos:
161161
name: Build Python Wheel (macOS)
162162
needs: [compute-versions]
163-
runs-on: build-amd64
163+
runs-on: linux-amd64-cpu8
164164
timeout-minutes: 120
165165
container:
166166
image: ghcr.io/nvidia/openshell/ci:latest
@@ -217,11 +217,11 @@ jobs:
217217
matrix:
218218
include:
219219
- arch: amd64
220-
runner: build-amd64
220+
runner: linux-amd64-cpu8
221221
target: x86_64-unknown-linux-musl
222222
zig_target: x86_64-linux-musl
223223
- arch: arm64
224-
runner: build-arm64
224+
runner: linux-arm64-cpu8
225225
target: aarch64-unknown-linux-musl
226226
zig_target: aarch64-linux-musl
227227
runs-on: ${{ matrix.runner }}
@@ -325,7 +325,7 @@ jobs:
325325
build-cli-macos:
326326
name: Build CLI (macOS)
327327
needs: [compute-versions]
328-
runs-on: build-amd64
328+
runs-on: linux-amd64-cpu8
329329
timeout-minutes: 60
330330
container:
331331
image: ghcr.io/nvidia/openshell/ci:latest
@@ -392,10 +392,10 @@ jobs:
392392
matrix:
393393
include:
394394
- arch: amd64
395-
runner: build-amd64
395+
runner: linux-amd64-cpu8
396396
target: x86_64-unknown-linux-gnu
397397
- arch: arm64
398-
runner: build-arm64
398+
runner: linux-arm64-cpu8
399399
target: aarch64-unknown-linux-gnu
400400
runs-on: ${{ matrix.runner }}
401401
timeout-minutes: 60
@@ -472,7 +472,7 @@ jobs:
472472
build-gateway-binary-macos:
473473
name: Build Gateway Binary (macOS)
474474
needs: [compute-versions]
475-
runs-on: build-amd64
475+
runs-on: linux-amd64-cpu8
476476
timeout-minutes: 60
477477
container:
478478
image: ghcr.io/nvidia/openshell/ci:latest
@@ -543,10 +543,10 @@ jobs:
543543
matrix:
544544
include:
545545
- arch: amd64
546-
runner: build-amd64
546+
runner: linux-amd64-cpu8
547547
target: x86_64-unknown-linux-gnu
548548
- arch: arm64
549-
runner: build-arm64
549+
runner: linux-arm64-cpu8
550550
target: aarch64-unknown-linux-gnu
551551
runs-on: ${{ matrix.runner }}
552552
timeout-minutes: 60
@@ -642,7 +642,7 @@ jobs:
642642
release-dev:
643643
name: Release Dev
644644
needs: [compute-versions, build-cli-linux, build-cli-macos, build-gateway-binary-linux, build-gateway-binary-macos, build-supervisor-binary-linux, build-python-wheels-linux, build-python-wheel-macos, build-deb]
645-
runs-on: build-amd64
645+
runs-on: linux-amd64-cpu8
646646
timeout-minutes: 10
647647
outputs:
648648
wheel_filenames: ${{ steps.wheel_filenames.outputs.wheel_filenames }}

‎.github/workflows/release-tag.yml‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
# ---------------------------------------------------------------------------
3131
compute-versions:
3232
name: Compute Versions
33-
runs-on: build-amd64
33+
runs-on: linux-amd64-cpu8
3434
timeout-minutes: 5
3535
container:
3636
image: ghcr.io/nvidia/openshell/ci:latest
@@ -90,12 +90,12 @@ jobs:
9090
uses: ./.github/workflows/e2e-test.yml
9191
with:
9292
image-tag: ${{ github.sha }}
93-
runner: build-arm64
93+
runner: linux-arm64-cpu8
9494

9595
tag-ghcr-release:
9696
name: Tag GHCR Images for Release
9797
needs: [compute-versions, build-gateway, build-supervisor, build-cluster, e2e]
98-
runs-on: build-amd64
98+
runs-on: linux-amd64-cpu8
9999
timeout-minutes: 10
100100
steps:
101101
- name: Log in to GHCR
@@ -125,12 +125,12 @@ jobs:
125125
matrix:
126126
include:
127127
- arch: amd64
128-
runner: build-amd64
128+
runner: linux-amd64-cpu8
129129
artifact: linux-amd64
130130
task: python:build:linux:amd64
131131
output_path: target/wheels/linux-amd64/*.whl
132132
- arch: arm64
133-
runner: build-arm64
133+
runner: linux-arm64-cpu8
134134
artifact: linux-arm64
135135
task: python:build:linux:arm64
136136
output_path: target/wheels/linux-arm64/*.whl
@@ -181,7 +181,7 @@ jobs:
181181
build-python-wheel-macos:
182182
name: Build Python Wheel (macOS)
183183
needs: [compute-versions]
184-
runs-on: build-amd64
184+
runs-on: linux-amd64-cpu8
185185
timeout-minutes: 120
186186
container:
187187
image: ghcr.io/nvidia/openshell/ci:latest
@@ -239,11 +239,11 @@ jobs:
239239
matrix:
240240
include:
241241
- arch: amd64
242-
runner: build-amd64
242+
runner: linux-amd64-cpu8
243243
target: x86_64-unknown-linux-musl
244244
zig_target: x86_64-linux-musl
245245
- arch: arm64
246-
runner: build-arm64
246+
runner: linux-arm64-cpu8
247247
target: aarch64-unknown-linux-musl
248248
zig_target: aarch64-linux-musl
249249
runs-on: ${{ matrix.runner }}
@@ -348,7 +348,7 @@ jobs:
348348
build-cli-macos:
349349
name: Build CLI (macOS)
350350
needs: [compute-versions]
351-
runs-on: build-amd64
351+
runs-on: linux-amd64-cpu8
352352
timeout-minutes: 60
353353
container:
354354
image: ghcr.io/nvidia/openshell/ci:latest
@@ -416,10 +416,10 @@ jobs:
416416
matrix:
417417
include:
418418
- arch: amd64
419-
runner: build-amd64
419+
runner: linux-amd64-cpu8
420420
target: x86_64-unknown-linux-gnu
421421
- arch: arm64
422-
runner: build-arm64
422+
runner: linux-arm64-cpu8
423423
target: aarch64-unknown-linux-gnu
424424
runs-on: ${{ matrix.runner }}
425425
timeout-minutes: 60
@@ -501,10 +501,10 @@ jobs:
501501
matrix:
502502
include:
503503
- arch: amd64
504-
runner: build-amd64
504+
runner: linux-amd64-cpu8
505505
target: x86_64-unknown-linux-gnu
506506
- arch: arm64
507-
runner: build-arm64
507+
runner: linux-arm64-cpu8
508508
target: aarch64-unknown-linux-gnu
509509
runs-on: ${{ matrix.runner }}
510510
timeout-minutes: 60
@@ -582,7 +582,7 @@ jobs:
582582
build-gateway-binary-macos:
583583
name: Build Gateway Binary (macOS)
584584
needs: [compute-versions]
585-
runs-on: build-amd64
585+
runs-on: linux-amd64-cpu8
586586
timeout-minutes: 60
587587
container:
588588
image: ghcr.io/nvidia/openshell/ci:latest
@@ -669,7 +669,7 @@ jobs:
669669
release:
670670
name: Release
671671
needs: [compute-versions, build-cli-linux, build-cli-macos, build-gateway-binary-linux, build-gateway-binary-macos, build-supervisor-binary-linux, build-python-wheels-linux, build-python-wheel-macos, tag-ghcr-release, build-deb]
672-
runs-on: build-amd64
672+
runs-on: linux-amd64-cpu8
673673
timeout-minutes: 10
674674
outputs:
675675
wheel_filenames: ${{ steps.wheel_filenames.outputs.wheel_filenames }}

‎architecture/build-containers.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ OpenShell also publishes Python wheels for `linux/amd64`, `linux/arm64`, and mac
6464
- There is no local Linux multiarch wheel build task. Release workflows own the per-arch Linux wheel production.
6565
- The macOS ARM64 wheel is cross-compiled with `deploy/docker/Dockerfile.python-wheels-macos` via `build:python:wheel:macos`.
6666
- Release workflows mirror the CLI layout: a Linux matrix job for amd64/arm64, a separate macOS job, and release jobs that download the per-platform wheel artifacts directly before publishing.
67+
- Release CPU jobs run on `linux-amd64-cpu8` and `linux-arm64-cpu8`; the macOS wheel is still cross-compiled in Docker from the amd64 Linux runner.
6768

6869
## Sandbox Images
6970

‎architecture/ci-e2e.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ OS-49 Phase 5 added non-required shadow workflows for the non-release workflows
3232

3333
`branch-checks.yml` uses `pr-gate` without a required label. That still verifies the mirror SHA matches the source PR head SHA, but does not require a new GitHub label for ordinary required checks. `branch-e2e.yml` keeps the existing `test:e2e` gate because it publishes temporary images and runs the expensive E2E suite. `ci-image.yml` now builds amd64 and arm64 CI images natively on shared CPU runners and merges the multi-arch manifest after both per-arch images are pushed.
3434

35+
OS-49 Phase 7 moves the release-facing CPU jobs in `release-canary.yml`, `release-dev.yml`, and `release-tag.yml` to the same shared CPU labels. The release workflows also call `driver-vm-linux.yml` and `deb-package.yml`, so those reusable workers use the same labels to avoid retaining a hidden ARC dependency in the release path. `release-vm-dev.yml` and `release-vm-kernel.yml` remain on the old labels until the VM runtime decision is recorded for OS-131.
36+
3537
## Trigger taxonomy
3638

3739
Five GitHub Actions trigger types appear in this flow. Each one was chosen for a specific reason - they are not interchangeable.
@@ -170,6 +172,8 @@ Only one workflow holds an "interesting" token: `rerun-on-completion` in `e2e-ga
170172

171173
`release-tag.yml` and `release-dev.yml` call `e2e-test.yml` directly on `main` / tag pushes. Tags and `main` are inherently trusted refs, so they bypass copy-pr-bot. E2E still blocks the release jobs (`tag-ghcr-release: needs: [..., e2e]`).
172174

175+
The release CPU jobs run on `linux-amd64-cpu8` and `linux-arm64-cpu8`. GitHub-hosted docs publishing and the external wheel-publish bridge keep their existing runners. VM development release workflows are tracked separately because the managed platform capability decision is still open.
176+
173177
Permissions on the release workflows are not yet scoped per-job. Tracked separately.
174178

175179
## Edge cases

0 commit comments

Comments
 (0)