[lab] release publish skips re-uploading changed binaries, freezing rolling latest-* assets #323
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#323
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?
The CI release pipeline freezes a rolling
latest-*release at its first-uploaded binaries: every subsequent push refreshes the release record and rolling tag but the binary assets keep their original upload date, so a downloaded binary can be weeks stale. On the deployer this shipped a pre-M13 binary that paniced on the migrated DB (lhumina_code/hero_os_tfgrid_deployer#29); on the cockpit it shipped an old UI.lab's current source (crates/lab/src/repo/releases.rsupload_release_assets) deletes-then-uploads each asset, which would refresh correctly, so thelab-builderCI image appears to run an olderlabwhose publish path skips re-uploading existing assets (the area touched by0a2e235'compare md5 before skipping release uploads'). The durable fix is to ensure the CIlab-builderimage carries alabthat always replaces assets, then the per-repo workaround below is unnecessary.Interim workaround already applied + verified on hero_os_tfgrid_deployer and hero_cockpit: the lab-release workflow deletes the tag's existing assets via the Forge API before
lab build --upload, which forces a fresh upload (the deployer release now carries today-dated assets). The same one-block change can land in the canonical workflow template, or be dropped once the image-side fix is in.Signed-by: mik-tf mik-tf@noreply.invalid
Diagnosed. The lab CODE is already fixed: commit
0a2e235(Jun 11, on both integration and main) replaced the upload step's name-presence skip -- which froze every rolling release after its first publish, since rolling tags reuse asset names -- with an md5-match skip, so changed binaries re-upload.The reason releases still freeze is that the fix never reached the CI image: the build-lab-builder
build-pushjob (which builds + pushes the lab-builder image) has been failing consistently -- on0a2e235itself (integration), on06baa09(integration), and ona48b0cd(main). Thereleasejobs succeed but run the stale pre-fix lab baked into the image; the last successful image push predates0a2e235.So the remaining fix is operational: make build-push succeed so the image carries the current lab. The job does a heavy docker build (apt, rustup 1.96, a musl.cc aarch64 cross-toolchain download, lab compile) then a 3-retry docker push; likely flake points are the musl.cc download (external) or the registry push (the merge-base commit is literally 'ci: retry docker push of the lab-builder image'). The build-push job log pinpoints it. Once the image rebuilds, the per-repo delete-before-upload workaround now on deployer+cockpit can be dropped.
Signed-by: mik-tf mik-tf@noreply.invalid