From 71c2a624c883b5f55e789954ddb89229491193a5 Mon Sep 17 00:00:00 2001 From: Kellen Busby Date: Mon, 6 Jul 2026 10:45:16 -0700 Subject: [PATCH 1/2] ci: run GitHub Actions on Blacksmith runners Swap all 17 jobs across 9 workflows from ubuntu-latest to blacksmith-2vcpu-ubuntu-2404 to run CI on Blacksmith's managed runners for faster queue times and caching at lower cost. Matches the minimal trashlane setup; no other workflow changes. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yaml | 18 +++++++++--------- .github/workflows/claude.yml | 2 +- .github/workflows/cleanup.yaml | 2 +- .github/workflows/dependabot-auto-format.yml | 2 +- .github/workflows/development.yaml | 2 +- .github/workflows/post-release.yml | 2 +- .github/workflows/preview.yaml | 2 +- .github/workflows/production.yaml | 2 +- .github/workflows/sync-prod-to-dev.yml | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c54dd7a65..e9d7ddfe5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,7 @@ concurrency: jobs: lint: name: lint - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: 🏗 Setup repo uses: actions/checkout@v4 @@ -38,7 +38,7 @@ jobs: build: name: build environment: Preview - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: 🏗 Setup repo uses: actions/checkout@v4 @@ -71,7 +71,7 @@ jobs: prettier: name: prettier - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: 🏗 Setup repo uses: actions/checkout@v4 @@ -116,7 +116,7 @@ jobs: test: name: test - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: 🏗 Setup repo uses: actions/checkout@v4 @@ -135,7 +135,7 @@ jobs: drift: name: drift - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: 🏗 Setup repo uses: actions/checkout@v4 @@ -158,7 +158,7 @@ jobs: fallow: name: fallow - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: 🏗 Setup repo uses: actions/checkout@v4 @@ -183,7 +183,7 @@ jobs: name: e2e if: github.event_name == 'merge_group' environment: Preview - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 timeout-minutes: 20 container: mcr.microsoft.com/playwright:v1.58.0-noble env: @@ -231,7 +231,7 @@ jobs: migrations-check: name: migrations-check - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: 🏗 Setup repo uses: actions/checkout@v4 @@ -266,7 +266,7 @@ jobs: migration-safety: name: migration-safety - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 permissions: pull-requests: write steps: diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index 8052eb337..437a381b0 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -11,7 +11,7 @@ jobs: if: | (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 permissions: contents: write pull-requests: write diff --git a/.github/workflows/cleanup.yaml b/.github/workflows/cleanup.yaml index 0f88735bc..c0bac0131 100644 --- a/.github/workflows/cleanup.yaml +++ b/.github/workflows/cleanup.yaml @@ -4,7 +4,7 @@ on: jobs: cleanup: if: ${{ github.event_name == 'workflow_dispatch' || (!contains(fromJson('["main", "release"]'), github.event.ref) && !startsWith(github.event.ref, 'gh-readonly-queue/') && !startsWith(github.event.ref, 'dependabot/')) }} - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: Install Turso CLI run: curl -sSfL https://get.tur.so/install.sh | bash diff --git a/.github/workflows/dependabot-auto-format.yml b/.github/workflows/dependabot-auto-format.yml index 65b02eaef..4f1a0f31b 100644 --- a/.github/workflows/dependabot-auto-format.yml +++ b/.github/workflows/dependabot-auto-format.yml @@ -14,7 +14,7 @@ concurrency: jobs: prettify: if: github.actor == 'dependabot[bot]' - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/development.yaml b/.github/workflows/development.yaml index 9a13f0428..7d1c043e7 100644 --- a/.github/workflows/development.yaml +++ b/.github/workflows/development.yaml @@ -8,7 +8,7 @@ on: - 'main' jobs: deploy: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 environment: Dev env: NODE_ENV: production diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index bf147437c..716f2eb43 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -9,7 +9,7 @@ jobs: permissions: issues: write pull-requests: write - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - uses: apexskier/github-release-commenter@v1 with: diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml index f0476c2f1..74f624843 100644 --- a/.github/workflows/preview.yaml +++ b/.github/workflows/preview.yaml @@ -13,7 +13,7 @@ concurrency: jobs: deploy: if: ${{ github.event_name != 'merge_group' }} - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 environment: Preview env: NODE_ENV: production diff --git a/.github/workflows/production.yaml b/.github/workflows/production.yaml index 4027879c8..a202fcf6f 100644 --- a/.github/workflows/production.yaml +++ b/.github/workflows/production.yaml @@ -15,7 +15,7 @@ on: required: true jobs: deploy: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 environment: Production env: NODE_ENV: production diff --git a/.github/workflows/sync-prod-to-dev.yml b/.github/workflows/sync-prod-to-dev.yml index 0b1b934a8..c0a3a8505 100644 --- a/.github/workflows/sync-prod-to-dev.yml +++ b/.github/workflows/sync-prod-to-dev.yml @@ -10,7 +10,7 @@ on: workflow_dispatch: jobs: sync: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 environment: Dev env: NODE_ENV: production From 0f20936b52a52f48e664601cabad27a3a5af43c5 Mon Sep 17 00:00:00 2001 From: Kellen Busby Date: Mon, 6 Jul 2026 21:50:04 -0700 Subject: [PATCH 2/2] ci: keep preview workflow on GitHub-hosted runners The preview deploy seeds a fresh Turso DB via pnpm seed:standalone, which issues thousands of per-row network round-trips. That latency-bound stream reproducibly kills Blacksmith runners mid-seed (2/2 attempts). Revert just this workflow to ubuntu-latest where seed completes (~289s); everything else stays on Blacksmith. Durable fix (seed local -> bulk import to Turso) tracked in #1143. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/preview.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml index 74f624843..65d1e0bd9 100644 --- a/.github/workflows/preview.yaml +++ b/.github/workflows/preview.yaml @@ -13,7 +13,11 @@ concurrency: jobs: deploy: if: ${{ github.event_name != 'merge_group' }} - runs-on: blacksmith-2vcpu-ubuntu-2404 + # Kept on GitHub-hosted runners: the seed step writes thousands of rows to a + # remote Turso DB, and that long, latency-bound stream of round-trips + # reproducibly kills Blacksmith runners mid-seed. Revisit once seeding no + # longer does per-row remote writes — see NWACus/web#1143. + runs-on: ubuntu-latest environment: Preview env: NODE_ENV: production