From ce70ac5f8e80cb545d03e96783b0dbb6d357656b Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Fri, 18 Sep 2026 17:03:45 -0700 Subject: [PATCH] ci: run the gate jobs on the workflow's own runner label, not ubuntu-slim (#7232) --- .github/workflows/merge-queue.yml | 13 +++++++------ .github/workflows/pull-request.yml | 7 ++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/merge-queue.yml b/.github/workflows/merge-queue.yml index b02f2fdd47..55ec5bee51 100644 --- a/.github/workflows/merge-queue.yml +++ b/.github/workflows/merge-queue.yml @@ -19,12 +19,12 @@ jobs: # new merge group but does NOT cancel the workflow runs of the destroyed one. Those stale # runs sit queued/running and starve the runner pool. Cancel any older merge-queue run # for the same PR — only the newest merge group per PR is ever valid. - # No checkout, no toolchain — just gh api + jq. ubuntu-slim starts sooner than a VM, which - # matters most here: every second before this runs is a second the superseded run keeps a slot. + # No checkout, no toolchain — just gh api + jq. Runs on the same label as check-changes: + # ubuntu-slim is a separate, smaller pool, and a gate job waiting on it holds the whole queue. cancel-superseded: name: Cancel Superseded Queue Runs if: github.repository == 'meshtastic/Meshtastic-Android' - runs-on: ubuntu-slim + runs-on: ubuntu-26.04-arm timeout-minutes: 5 permissions: actions: write @@ -96,11 +96,12 @@ jobs: upload_artifacts: false secrets: inherit - # Pure gate job: no checkout, no toolchain, just reads `needs` results. ubuntu-slim is a - # container-backed single-CPU runner that starts faster than a VM (15-min job cap, x64 only). + # Pure gate job: no checkout, no toolchain, just reads `needs` results. It is the required + # check, so it runs on the label the rest of the workflow already gets slots on, not on + # ubuntu-slim's separate pool: an aggregator queued behind slim blocks a finished build. check-workflow-status: name: Check Workflow Status - runs-on: ubuntu-slim + runs-on: ubuntu-26.04-arm timeout-minutes: 5 permissions: {} needs: diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 1ce98d8f21..cec33ee66d 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -369,11 +369,12 @@ jobs: secrets: inherit # 3. WORKFLOW STATUS: Ensures required checks are satisfied - # Pure gate job: no checkout, no toolchain, just reads `needs` results. ubuntu-slim is a - # container-backed single-CPU runner that starts faster than a VM (15-min job cap, x64 only). + # Pure gate job: no checkout, no toolchain, just reads `needs` results. It is the required + # check, so it runs on the label the rest of the workflow already gets slots on, not on + # ubuntu-slim's separate pool: an aggregator queued behind slim blocks a finished build. check-workflow-status: name: Check Workflow Status - runs-on: ubuntu-slim + runs-on: ubuntu-26.04-arm timeout-minutes: 5 permissions: {} needs: [check-changes, check-metadata, validate-and-build]