Skip to content

nightly: end an already-published recovered build as a no-op - #20986

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix/nightly-recheck-already-published
Oct 15, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix/nightly-recheck-already-published

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

nightly-next push run 38689026338 went red in publish-nightly although nothing was wrong. It and its continuation run 38689412336 both took recovered build 3865928435701. The continuation published it at 06:02Z, so at 06:56Z the push run's recheck printed build 3865928435701 is not above 3865928435701 in https://files-next.cmux.com/nightly-next/next/appcast-arm64.xml and exited 1.

Now, when no feed is above the recovered build and some feed already offers that exact build, the recheck posts a notice ("build X is already published; nothing to do") and sets already_published=true. Every later publish-nightly step skips, and so does republish-nightly-deltas, which gets a new already_published job output. A build below any feed still fails, as before.

  • scripts/ci/nightly_version.py check-build --already-published-ok allows an equal highest build and prints already_published=true|false last. Without the flag, behavior doesn't change.
  • The failure issue jobs need no change. The no-op leaves tag_status empty (the marker step skips), so report-nightly-failure doesn't fire. close-nightly-failure-issue doesn't fire either; the run that published the build owns the issue.
  • publish-nightly-identity-legacy is untouched.

Testing

python3 -m unittest tests.test_nightly_next_recovery runs the real recheck step against local feed copies and evaluates the real job ifs.

  • Red at f1f47f6 (test only): 3 failures: already-published is a no-op, later steps are gated, no delta republish.
  • Green at 35b2398: 32 tests OK.

Also green: python3 tests/test_nightly_version.py (9/9), and ~/.local/bin/actionlint .github/workflows/nightly.yml. The other tests that read nightly.yml pass, except test_ci_change_areas.py, test_ci_select_package_tests.py and test_ci_self_hosted_guard.sh. Those fail on unrelated paths (Packages/Shared change areas, a temp calls file, runner labels in other workflows). I didn't run the workflow live.

Changelog

none

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes the nightly publish recheck treating an already-published recovered build as a failure, which turned the push run red even though the build was published by a continuation run. The recheck now detects that case, ends as a no-op with success, and skips all later publish steps and delta republishing. A build below any feed still fails as before.

  • nightly_version.py check-build gains --already-published-ok, which accepts an equal highest build and prints already_published=true|false; behavior without the flag is unchanged.
  • The no-op leaves tag_status empty so failure reporting and issue-closing steps do not fire.

Written for commit 35b2398. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits October 15, 2026 01:58
… failure

Run 38689026338 and its continuation 38689412336 took the same recovered
build; the second recheck found it on the feed and failed the run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When another run has already published the recovered build, the recheck
now notices it, sets already_published, and every later publish-nightly
step and republish-nightly-deltas skip. A build below any feed still fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 15, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@coderabbitai

coderabbitai Bot commented Oct 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 25076033-ea13-41a3-972e-ca53bce82b0b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-vvunv created for this PR by the cmux coordinator.

@teamleaderleo
teamleaderleo merged commit 87e1ec2 into feat-cmux-next Oct 15, 2026
74 checks passed
@teamleaderleo
teamleaderleo deleted the fix/nightly-recheck-already-published branch October 15, 2026 09:18
lawrencecchen added a commit that referenced this pull request Oct 16, 2026
…covered build (#21144)

* nightly: run publication tooling from the workflow commit, not the recovered build

publish-nightly checks out the published build's commit. A recovered build can
be days older than the workflow: run 38855116561 recovered 0664bd9, whose
nightly_version.py predates --already-published-ok (#20986), so the recheck
failed with unrecognized arguments. The same skew would break
publish-release-assets.py --github-output and finalize-release.py (#21139).

Check out scripts/ at github.sha into .publish-tooling and run the publication
tooling from there: nightly_version, nightly_release_notes, nightly-next-guard,
prune, publish-release-assets, finalize-release, upload-r2-object and
update-release-tag. Scripts that read the build's own source tree stay on the
publish ref.

* nightly: pin every moved publication script to the tooling checkout in the test

Review follow-up for #21144.

* test: accept the publication tooling path for the release tag helper

* test: allow the publication tooling checkout at github.sha in publish-nightly
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