From 503a5aa20589f6dcf5a60a1a315fd66a6d3960d3 Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 29 Oct 2026 14:50:46 -0400 Subject: [PATCH 1/2] ci: run workflows on Blacksmith runners --- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/e2e.yml | 2 +- .github/workflows/release-please.yml | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b447ef2e6..a3e45d9c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,7 @@ jobs: # named release-please-- and inherits sentinel passes for free. guard: name: Guard - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 timeout-minutes: 2 outputs: mode: ${{ steps.classify.outputs.mode }} @@ -200,7 +200,7 @@ jobs: # match local `make quality-check`. pre-check: name: Pre-check (format + lint) - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 needs: [guard] if: ${{ needs.guard.outputs.mode == 'full' }} timeout-minutes: 3 @@ -222,7 +222,7 @@ jobs: quality-gates: name: Quality Gates - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 needs: [guard, pre-check] if: ${{ needs.guard.outputs.mode == 'full' }} strategy: @@ -284,7 +284,7 @@ jobs: build: name: Build Package - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 needs: [guard, quality-gates] if: ${{ needs.guard.outputs.mode == 'full' && needs.guard.outputs.should_build == 'true' }} timeout-minutes: 5 @@ -319,7 +319,7 @@ jobs: # A failed Nix build blocks validation, protecting the advertised Nix CLI. nix: name: Nix flake - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 needs: [guard] if: ${{ needs.guard.outputs.mode == 'full' }} timeout-minutes: 30 @@ -348,7 +348,7 @@ jobs: # job in `needs:` and the results array. validation: name: Validation - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 needs: [guard, pre-check, quality-gates, build, nix] if: always() timeout-minutes: 1 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 199fbd389..f8a83b78d 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -22,7 +22,7 @@ jobs: # rerun a previous run. e2e: name: E2E - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 timeout-minutes: 45 steps: diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 851e49b83..396dd344d 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -20,7 +20,7 @@ jobs: # duplicate ~24 min of compute per merge for zero added signal. release-please: name: Release Please - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 outputs: release_created: ${{ steps.release.outputs.release_created }} @@ -42,7 +42,7 @@ jobs: pypi-publish: name: PyPI Publish - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 needs: [release-please] if: ${{ needs.release-please.outputs.release_created == 'true' }} @@ -75,7 +75,7 @@ jobs: linear-sync: name: Linear Release Sync needs: release-please - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 permissions: contents: read steps: @@ -94,7 +94,7 @@ jobs: name: Linear Release Complete if: ${{ needs.release-please.outputs.release_created == 'true' }} needs: [release-please, linear-sync] - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 permissions: contents: read steps: From 65baf56e02997d5876e69f3ff6d0ecdf311e5e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dean=20Qui=C3=B1anola?= Date: Thu, 29 Oct 2026 15:38:42 -0700 Subject: [PATCH 2/2] ci: use 4 vCPU Blacksmith runners for quality gates and e2e Quality Gates legs ran 9-14 min on 2 vCPU against a 15 min timeout, and E2E would hit its 45 min timeout. Also update the Nix job comment to name the Blacksmith runner. --- .github/workflows/ci.yml | 6 +++--- .github/workflows/e2e.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a3e45d9c0..fae016449 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -222,7 +222,7 @@ jobs: quality-gates: name: Quality Gates - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: blacksmith-4vcpu-ubuntu-2404 needs: [guard, pre-check] if: ${{ needs.guard.outputs.mode == 'full' }} strategy: @@ -311,8 +311,8 @@ jobs: # Build and check the optional Nix flake, so the packaged CLI # (`nix run github:runpod/flash`) can't silently break -- its runtime # dependency list is maintained separately from pyproject.toml. The uv path - # above is untouched, and this job only runs on - # x86_64-linux (ubuntu-latest). `nix flake check` runs the flake's own gate + # above is untouched, and this job only runs on x86_64-linux + # (blacksmith-2vcpu-ubuntu-2404). `nix flake check` runs the flake's own gate # (ruff lint + format, nixfmt, shellcheck, the pytest suite) in a sandbox; # the build + smoke-test confirm the packaged CLI on the pinned Python 3.14. # diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index f8a83b78d..fd0d4e102 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -22,7 +22,7 @@ jobs: # rerun a previous run. e2e: name: E2E - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: blacksmith-4vcpu-ubuntu-2404 timeout-minutes: 45 steps: