lab-publish.yaml: CI exits success but no latest release created on 3 repos #277
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_skills#277
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Three repos (
hero_rpc,hero_codescalers,hero_wallet) ranlab-publish.yamlto CI statussuccessin the last 24h but did not produce alatestrelease on Forgejo. The.../releases/tags/latestendpoint returnsThe target couldn't be foundfor all three;GET /releaseslists only ancient unrelated tags.This is independent of hero_skills#270 (which is now fixed at
de34fe0and the very next hero_rpc dispatch returnedpublish | successpost-patch — but still without alatestrelease).Confirmed instances
publishtaskreleases/tags/latesthero_rpchero_codescalersfix(ci): flip hero_admin_lib path→git)hero_walletfix(ci): drop removed askama with-axum feature)For comparison, the 9 other s128 in-flight pushes that landed
publish | successall DO have musl-x86_64 assets attached tolatest:Hypotheses to investigate
lab buildexits 0 on failed builds (already known per CLAUDE.md "Tooling concerns"). The publish run may be reporting success even when 0 binaries pass MIN_BIN_BYTES / cargo build / something else.--uploadpath silently skips when token scope lackswrite:repositoryon those three repos' Actions secrets. (Token is per-repo.)Repro
Fix surface (best guess)
Add explicit asset-count verification at the end of the publish job — non-zero exit if
<expected_count>musl-x86_64 binaries are not present onlatestafter the run. Surfaces the silent-skip class definitively.Filed during s129 right after closing #270. Three repos are the only members of the s128 9-repo unblock set that didn't go from green-CI to green-release.
Update — likely false alarm.
Re-dispatched the same
lab-publish.yamlonhero_wallet(no code change, justworkflow_dispatch) and it produced 3 musl-x86_64 binaries onlatest:hero_wallet-linux-musl-x86_64hero_wallet_admin-linux-musl-x86_64hero_wallet_server-linux-musl-x86_64So the original
publish | successruns likely hit a transient condition (token-scope timing, forgejo upload-API hiccup, runner state) rather than a structural lab/workflow bug.Re-dispatching
hero_codescalers+hero_rpcnow to confirm the same pattern. Will close this issue if both come back with assets onlatest.Fix-surface change: if both re-fires produce assets, the only durable improvement worth landing is the explicit asset-count assertion at the end of the publish job so a future transient silently-failed upload surfaces as a CI red instead of a green-with-empty-release.
Resolved as transient. Re-dispatching the three repos (
hero_wallet,hero_codescalers,hero_rpc) without any code change produced the expectedlatestreleases:hero_wallet→ 3 musl-x86_64 binaries (cli + server + admin)hero_codescalers→ 3 musl-x86_64 binarieshero_rpc→ 6 musl-x86_64 binaries (including the two nested-workspace bins unblocked by #270)Root cause was per-repo
FORGEJO_TOKENsecret not yet populated when the original CI runs fired (user confirmed mid-session). The workflow itself behaves correctly under a configured token.The proposed asset-count assertion is still a worthwhile hardening (surfaces future transient token/forgejo-API issues as CI red instead of CI green with empty release), but it's a quality-of-life polish — not a structural bug. Filing as separate optional improvement if anyone wants to land it; otherwise closing this issue as the immediate symptom is moot.
Also noted during s129's post-dispatch sweep: separate from the transient symptom, three repos ship fewer binaries than
cargo metadataexpects despitelab-publish.yamlrunning —hero_memory(1/5, ONNX-related),hero_lib_rhai(2/5),hero_office(2/3). All three showpublish | failurein CI status (NOT the silent-success symptom this issue catalogues). Those are the strict-coverage gap and will be tracked in the s130 head.