Skip to content

ci: dogfood builds are opt-in with the dev-build label - #15380

Merged
teamleaderleo merged 2 commits into
mainfrom
feat-dev-build-label
Sep 28, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
feat-dev-build-label

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

The Dogfood build #N job, whose success asks the build controller for a dev build of the PR head, ran on every push of every same-repo app PR. Most of those builds were never opened. It now runs only for PRs with the new dev-build label: on each push while the label is on, and once when the label is added. Docs-only and other app-free changes still never build.

The build controller builds the newest head of a labelled PR each time a worker frees up, so under load some pushes are skipped. To keep regressions bisectable, the sticky comment now also names the head its previous version linked, the range since then (commit count and compare link), a link to that earlier build, and the command to build a commit in between (cmux-ci build cmux --ref <sha> --tag bisect-<sha8> --workspace <PR URL>).

CLAUDE.md says when to add the label: only when someone will dogfood the PR.

Verification: actionlint .github/workflows/ci.yml is clean. The job condition and comment step can only run on a labelled same-repo PR; this PR will be labelled dev-build after opening to exercise the labeled path end to end.

🤖 Generated with Claude Code


Summary by cubic

Makes fleet dogfood builds opt-in so most PR pushes no longer trigger one. The Dogfood build #N job now runs only for PRs labelled dev-build (on each push while labelled, and once when the label is added); docs-only and other app-free changes still never build.

  • Since labeled events get their own concurrency group, they can't replace the pending run that asks for the dogfood build.
  • The sticky comment names the head its previous version linked, the commit range since then with a compare link and earlier-build link, and the command to build a commit in between, so regressions stay bisectable when the fleet skips pushes under load. A failed compare call reports an unknown commit count instead of error JSON.
  • CLAUDE.md now says to add the label only when someone will dogfood the PR.

Written for commit 3715935. Summary will update on new commits.

Review in cubic

…revious head

The Dogfood build job, which asks the build controller for a fleet build of
the PR head, now runs only for PRs labelled dev-build: on each push while the
label is on and when it is added. App-free changes still never build.

The sticky comment names the head its previous version linked, the commit
range since then with a compare link, and the command to build a commit in
between, so a regression can be bisected across pushes the fleet skipped.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 9 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 058bfc27-f660-4222-8104-5931a5377270

📥 Commits

Reviewing files that changed from the base of the PR and between b681e7e and 3715935.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • CLAUDE.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@teamleaderleo teamleaderleo added the dev-build Build a fleet dogfood build of each push (newest head under load) label Sep 28, 2026
… tolerate a failed compare

A later label event could replace the pending run that asks for the dogfood
build; adding dev-build now runs in its own group. A failed compare call
leaves the commit count as ? instead of error JSON.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Dogfood build of 3715935f5b6a08c7aa2844ddff3c732bf2cac774

cmux DEV pr-15380-3715935f.app

The link opens this exact commit in the cmux dev menu bar app; the page waits until the build is ready. Builds run only while this PR has the dev-build label. Under load the fleet builds the newest push each time a worker frees up, so some pushes are skipped. It signs in against production, so Cloud or backend changes still need a tagged build with a development backend.

Dogfood tours of 3715935f

sidebar-and-chrome-tour at 3715935f: not run (run)

skipped: the tour job left no result; the next CI attempt tries again

Tours are picked by the paths globs in dogfood/scenarios/*.json; a Dogfood-tours: a, b line in the description picks them instead (none turns this off). Look at every frame before merging: a green tour only means no step failed.

@teamleaderleo
teamleaderleo merged commit 906926a into main Sep 28, 2026
66 checks passed
@teamleaderleo
teamleaderleo deleted the feat-dev-build-label branch September 28, 2026 14:42
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for 3715935f5b: every check was green at merge (23 verified; 13 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 28, 2026
1028a08 test: isolate background workspace git probe fixture (manaflow-ai#15388)
41ad40d fix: keep the terminal area when the window is too narrow for the side panels (manaflow-ai#15369)
2890f0b Roll the Base create back when the owner network resolve fails (manaflow-ai#15358)
7b0a15f Keep agent- and script-opened workspaces and panes in the background (manaflow-ai#15281)
4f14fa3 ci: move CLI regressions to CLI product tests and rebalance the seven app-host shards (manaflow-ai#15177)
906926a ci: dogfood builds are opt-in with the dev-build label (manaflow-ai#15380)
2f6716c PR media: classify app changes by CI's build inputs; a reuse error is no refusal (manaflow-ai#15386)
bc28bc4 Release the Base generation when a create is refused for credits (manaflow-ai#15343)
6760c93 iOS: Add Computer never disturbs the active Mac (manaflow-ai#15102)
0f2d3d3 Show Claude sessions that stop on an API error instead of leaving them Running (manaflow-ai#15232)
20ef7c9 Keep the main window floor on the animating setFrame path (manaflow-ai#15368)
b4f5dc5 ci: move UI runs pinned to Blacksmith macOS 26 onto owned Macs (manaflow-ai#15383)
e02c385 PR media: compile once when CI's build cannot load, and say why a tour skipped (manaflow-ai#15378)
ebd1f4f fix(iroh-v2): commit delivery accounting only after the frame is sent (manaflow-ai#15344)

# Conflicts:
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/ci.yml
#	.github/workflows/pr-media.yml
#	.github/workflows/test-e2e.yml
teamleaderleo added a commit that referenced this pull request Sep 28, 2026
…ry app PR (#15418)

* PR media: run for every app pull request, not only dev-build ones

#15380 made the dogfood build job opt-in, and the media gate waited for
its success, so only labelled pull requests got media. The gate now
waits for the dogfood job only when it runs (it rewrites the sticky
comment) and otherwise decides on the app build alone; publish posts the
sticky comment itself and updates a media-only comment for a new head. A
pull request that changes nothing a tour shows gets no media section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* PR media: adopt only, start when CI completes

Tours never compile on their own any more: each adopts the build CI made
for the pull request on the pool that compiled it, or main's build of the
same inputs when CI reused it (dispatch-focused-test.py --adopt-main, which
lets test-e2e.yml adopt main's product and fail rather than compile). A
build the UI test Macs cannot load gets a skip note; only a manual
allow_compile dispatch compiles.

The workflow starts when the CI run completes instead of when it is
requested, so the planner no longer holds a runner while CI builds. A
dogfood comment naming an older head no longer holds media back.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* PR media: tour main's build on the merge CI tested; address review

- A tour of main's build dispatches the merge CI tested, so test-e2e.yml
  looks main's product up by the inputs CI matched, not the head's.
- A manual dispatch while CI still runs leaves media to the completed run.
- Skip notes say how to retry now that nothing retries by itself.
- Pin include-hidden-files: false on the media upload.
- Drop stale compile comments; test the --adopt-main parser guard.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev-build Build a fleet dogfood build of each push (newest head under load)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant