feat(ci): migrate all workflows to GKE self-hosted runners

Swap all `runs-on: ubuntu-latest` to `runs-on: arc-runner-set` all jobs.
The ARM docker build job in docker.yml uses `${{ matrix.runner }}`
and is left untouched since the GKE runner pool is x86_64 only.

Runners are backed by ARC (Actions Runner Controller) on a GKE cluster
with a spot preemptible node pool that scales based on job demand.

Use the baked Electron dependencies for the desktop E2E job.
This commit is contained in:
ethernet 2026-07-17 16:40:28 -04:00
parent dbe14424ed
commit d4e940f241
22 changed files with 48 additions and 55 deletions

View file

@ -19,7 +19,7 @@ concurrency:
jobs:
generate:
name: "Generate slices"
runs-on: ubuntu-latest
runs-on: arc-runner-set
timeout-minutes: 10
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
@ -48,7 +48,7 @@ jobs:
test:
name: Run tests slice ${{ matrix.slice.index }}/${{ inputs.slice_count }}
needs: generate
runs-on: ubuntu-latest
runs-on: arc-runner-set
timeout-minutes: 30
strategy:
fail-fast: false
@ -149,7 +149,7 @@ jobs:
save-durations:
needs: test
if: needs.test.result == 'success' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
runs-on: arc-runner-set
timeout-minutes: 10
steps:
- name: Download all slice durations
@ -179,7 +179,7 @@ jobs:
key: test-durations-${{ github.run_id }}
e2e:
runs-on: ubuntu-latest
runs-on: arc-runner-set
timeout-minutes: 15
steps:
- name: Checkout code