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 6ecd335aa8
commit e4fe99987d
22 changed files with 48 additions and 55 deletions

View file

@ -37,12 +37,12 @@ jobs:
matrix:
include:
- arch: amd64
runner: ubuntu-latest
runner: arc-runner-set
platform: linux/amd64
cache-from: type=gha,scope=docker-amd64
cache-to: type=gha,mode=max,scope=docker-amd64
- arch: arm64
runner: ubuntu-24.04-arm
runner: arc-runner-arm64
platform: linux/arm64
cache-from: type=gha,scope=docker-arm64
cache-to: type=gha,mode=max,scope=docker-arm64
@ -143,12 +143,12 @@ jobs:
matrix:
include:
- arch: amd64
runner: ubuntu-latest
runner: arc-runner-set
platform: linux/amd64
cache-from: type=gha,scope=docker-amd64
cache-to: type=gha,mode=max,scope=docker-amd64
- arch: arm64
runner: ubuntu-24.04-arm
runner: arc-runner-arm64
platform: linux/arm64
cache-from: type=gha,scope=docker-arm64
cache-to: type=gha,mode=max,scope=docker-arm64
@ -216,7 +216,7 @@ jobs:
# ---------------------------------------------------------------------------
merge:
if: github.repository == 'NousResearch/hermes-agent' && (github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'release')
runs-on: ubuntu-latest
runs-on: arc-runner-set
needs: [publish]
timeout-minutes: 10
environment: container-publish