Repository navigation
ci(seed): publish the app-host product from admission's pool, not the stalled 12 vCPU label #27451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
4eed88b
171e793
c1e4add
b832824
0ebffdf
3c27f1a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -22,7 +22,11 @@ | |
| and verify jobs of main's nightly | ||
| and the DEV publisher's Mac jobs keep 6 vCPU, their old pinned default, while it moves. With | ||
| ENABLED unset the trusted pick is skipped and only `cloud` is read. `alternate` is the other label, | ||
| for a re-run. | ||
| for a re-run. ONLY (a candidate label or its size) makes that label both `cloud` and `alternate`, | ||
| whatever the snapshot says: the sign and verify picks of main's nightly and the DEV daily use 6vcpu. | ||
| blacksmith-12vcpu-macos-26 started no job from 2026-10-28 20:32Z (main's run 40834485210 held | ||
| build-sign-notarize-nightly on it from 07:47Z after a re-run took the 12 vCPU `alternate`), and the | ||
| snapshot cannot see a label with no capacity while nothing waits on it. | ||
| `classic_nightly_build_runner.py prepare` prints only `trusted`, read once with no wait, and false | ||
| when the list cannot be read: prepare-nightly-variant (no secrets) takes the same pinned tuple while | ||
| that mini is idle right after the build, else its Blacksmith label. Its three legs ran about 1 min | ||
|
|
@@ -200,14 +204,19 @@ def read() -> Sequence[Mapping[str, Any]] | None: | |
| snapshot = None | ||
| except Exception as error: # noqa: BLE001 - the default label keeps its say | ||
| print(f"::warning title=classic nightly build runner::could not read the pool snapshot ({str(error)[:200]})") | ||
| blacksmith, blacksmith_why = blacksmith_route(snapshot, now, (env.get("FIRST") or "").strip()) | ||
| only = SIZES.get((env.get("ONLY") or "").strip(), (env.get("ONLY") or "").strip()) | ||
| if only in CANDIDATES: | ||
|
Comment on lines
+207
to
+208
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| blacksmith, blacksmith_why, other = only, f"`{only}` only (ONLY), for the pick and a re-run", only | ||
| else: | ||
| blacksmith, blacksmith_why = blacksmith_route(snapshot, now, (env.get("FIRST") or "").strip()) | ||
| other = alternate(blacksmith) | ||
| lines = [f"trusted: {'yes' if trusted else 'no'} ({trusted_why})", f"blacksmith: {blacksmith} ({blacksmith_why})"] | ||
| for line in lines: | ||
| print(f"classic nightly build runner: {line}") | ||
| if env.get("GITHUB_OUTPUT"): | ||
| with open(env["GITHUB_OUTPUT"], "a", encoding="utf-8") as handle: | ||
| handle.write(f"trusted={'true' if trusted else 'false'}\ncloud={blacksmith}\n" | ||
| f"alternate={alternate(blacksmith)}\nattempt={(env.get('GITHUB_RUN_ATTEMPT') or '1').strip()}\n") | ||
| f"alternate={other}\nattempt={(env.get('GITHUB_RUN_ATTEMPT') or '1').strip()}\n") | ||
| if env.get("GITHUB_STEP_SUMMARY"): | ||
| with open(env["GITHUB_STEP_SUMMARY"], "a", encoding="utf-8") as handle: | ||
| handle.write("\nNightly build runner:\n" + "".join(f"- {line}\n" for line in lines)) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Script executed:
Repository: manaflow-ai/cmux
Length of output: 9768
Script executed:
Repository: manaflow-ai/cmux
Length of output: 41409
Do not skip the sole product publisher without an artifact check.
When an unchanged seed predates the pool’s publisher role,
seed_decide.pycan skip the only publisher after duplicate removal. The saved-seed predicate does not check product-artifact availability. Artifact expiration only makes the consumer miss; it does not change the predicate or force a publisher run. PR and E2E consumers can compile instead of reusing the product.