Skip to content

fix(ci): run Build App on the larger runner in GitHub mode#5826

Merged
TheodoreSpeaks merged 1 commit into
stagingfrom
fix/build-app-larger-runner
Jul 22, 2026
Merged

fix(ci): run Build App on the larger runner in GitHub mode#5826
TheodoreSpeaks merged 1 commit into
stagingfrom
fix/build-app-larger-runner

Conversation

@TheodoreSpeaks

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #5814. Tonight's live CI_PROVIDER=github run caught the one job I missed.

The app is built twice: once inside Docker for the deployable image (Build AMD64 (app), already routed to linux-x64-8-core in #5814) and once outside Docker as a parallel check (Build App in test-build.yml). Same next build, same ~21.9 GB peak — but Build App was still on a free 16 GB runner and SIGKILLed:

error: script "build" was terminated by signal SIGKILL (Forced quit)

That failure blocked Migrate DB and Promote Images, so staging never deployed the merge commit.

Lint and Test stays on free ubuntu-latest — it passed on GitHub-hosted with 13,589 tests and doesn't run the Next build.

Why unconditional rather than fork-guarded

test-build.yml runs on PRs including forks, so a paid runner here is exposed to fork traffic in a way the push-only image jobs aren't. That's acceptable: this repo requires maintainer approval for fork-PR workflows (verified — fork PRs #5801/#5791 sit at action_required), so nobody can trigger spend by opening a PR. An approved fork PR costs ~$0.15 instead of $0, and it executes no code it wasn't already going to execute on a free runner. Public IP is disabled on the runner, so GitHub's fixed-IP warning doesn't apply. A fork guard would have added a conditional and made outside contributors' PRs fail with a confusing OOM.

Costs nothing in normal operation — Blacksmith is unchanged.

Testing

  • actionlint clean, bun run lint:check 19/19
  • Evidence from run 29877014793: Build AMD64 (app) succeeded on linux-x64-8-core while Build App SIGKILLed on ubuntu-latest in the same run — same build, only the runner differed
  • Memory requirement measured directly: 21,883 MB peak on a 32 GB runner; free 16 GB runners fail at every heap ceiling (4096/6144/8192 all died at ~15.9 GB)

Type of Change

  • Bug fix

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Jul 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Jul 21, 2026 11:59pm

Request Review

@cursor

cursor Bot commented Jul 21, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Workflow-only runner label change with no application code; aligns Build App with existing app image CI routing.

Overview
When CI_PROVIDER is GitHub-hosted (not Blacksmith), the parallel Build App job now runs on linux-x64-8-core instead of ubuntu-latest, matching the app image build jobs that already use that runner.

A workflow comment documents that this job runs the same next build as the deployable app image and was OOM-killing (~22 GB peak) on 16 GB free runners. Lint and Test is unchanged on ubuntu-latest.

Reviewed by Cursor Bugbot for commit 09e55e4. Bugbot is set up for automated code reviews on this repo. Configure here.

@greptile-apps

greptile-apps Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR moves the standalone app build onto a larger GitHub-hosted runner.

  • Uses linux-x64-8-core for Build App in GitHub mode.
  • Keeps the existing Blacksmith runner as the default.
  • Documents the app build's memory requirement.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.
  • The runner label and provider predicate match existing app image build jobs.

Important Files Changed

Filename Overview
.github/workflows/test-build.yml Routes the memory-intensive app build to the larger runner already used by sibling app image builds.

Reviews (1): Last reviewed commit: "fix(ci): run Build App on the larger run..." | Re-trigger Greptile

@TheodoreSpeaks
TheodoreSpeaks merged commit e9898ea into staging Jul 22, 2026
20 checks passed
@TheodoreSpeaks
TheodoreSpeaks deleted the fix/build-app-larger-runner branch July 22, 2026 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant