[ci] Release artifacts not published — --from-ci install path blind to this repo #16

Open
opened 2026-05-03 23:36:11 +00:00 by mik-tf · 1 comment
Owner

Audit context

Filed during Phase 2 CI audit (hero_demo#54, session 55).

State

  • Tags exist: v0.1.1, v0.1.2, v0.1.3
  • Forgejo Releases: none
  • Forgejo package registry: hero_browser 0.1.2 / 0.1.3 / dev ✓ binary present
  • Tag-triggered runs not visible in last 100 tasks (recent dev pushes only) — likely same shared-helper publish path as hero_biz.

Root cause

Same as hero_biz#13: scripts/build_lib.sh::publish_binaries writes only to the package registry. svc_install_from_ci consumes Release assets → invisible.

Cluster

Sibling issues: hero_biz, hero_books. Likely hero_foundry.

Same: add Create Release + Upload Release Assets to build-linux.yaml (mirror hero_proc pattern).

Effort

Quick win — 1-2 h. Phase 2 implementation.

## Audit context Filed during Phase 2 CI audit ([hero_demo#54](https://forge.ourworld.tf/lhumina_code/hero_demo/issues/54), session 55). ## State - Tags exist: `v0.1.1`, `v0.1.2`, `v0.1.3` - Forgejo Releases: **none** - Forgejo package registry: `hero_browser 0.1.2 / 0.1.3 / dev` ✓ binary present - Tag-triggered runs not visible in last 100 tasks (recent dev pushes only) — likely same shared-helper publish path as hero_biz. ## Root cause Same as [hero_biz#13](https://forge.ourworld.tf/lhumina_code/hero_biz/issues/13): `scripts/build_lib.sh::publish_binaries` writes only to the package registry. `svc_install_from_ci` consumes Release assets → invisible. ## Cluster Sibling issues: hero_biz, hero_books. Likely hero_foundry. ## Recommended fix Same: add **Create Release** + **Upload Release Assets** to `build-linux.yaml` (mirror hero_proc pattern). ## Effort Quick win — 1-2 h. Phase 2 implementation.
Author
Owner

Pilot validation complete

v0.1.4-rc5 from development_mik_release_assets is fully green on both matrix legs (amd64 + arm64-cross). All 9 workflow steps succeeded. Release published with 6 assets, package registry mirror also published.

Verification

Release assets (canonical Hero distribution path):

Asset Size
hero_browser-linux-amd64 1.38 MB
hero_browser-linux-arm64 978 KB
hero_browser_server-linux-amd64 3.45 MB
hero_browser_server-linux-arm64 2.60 MB
hero_browser_ui-linux-amd64 1.46 MB
hero_browser_ui-linux-arm64 1.18 MB

Public download (no auth, world-readable) confirmed: HTTP 200 for https://forge.ourworld.tf/lhumina_code/hero_browser/releases/download/v0.1.4-rc5/hero_browser-linux-amd64.

Package registry (secondary mirror): hero_browser v0.1.4-rc5 published.

What the pilot uncovered (4 bugs, all in shared build_lib.sh template)

The pilot took 5 rc iterations because each one surfaced a new shared-helper drift from hero_proc's working canonical:

rc Discovery Fix commit
rc1 "Set up job" hung 18 min then cancelled (transient runner issue) n/a — auto-retried
rc2 Build failed: error[E0463]: can't find crate for 'core' — musl target missing 217fd7a — pre-install x86_64-unknown-linux-musl
rc3 Create Release step failed: jq: command not found 929dd2c — apt install jq
rc4 publish_binaries failed: BIN_DIR not set 94570b6 — export BIN_DIR (later superseded)
rc5 publish_binaries 404'd on /api/crates/ (wrong endpoint) and used wrong VERSION (buildenv 0.1.0 vs tag) ac4b3d8 — replaced with inline upload using /api/packages/ matching hero_proc lines 108-135

Feature branch ready for squash-merge

5 commits on development_mik_release_assets:

  1. edeb5eb ci(build-linux): publish to Releases assets + pkg registry, not pkg only
  2. 217fd7a fix(build_lib): pre-install x86_64-unknown-linux-musl target
  3. 929dd2c fix(build_lib): apt install jq in setup_linux_toolchain
  4. 94570b6 ci(build-linux): export BIN_DIR before publish_binaries (superseded by #5)
  5. ac4b3d8 ci(build-linux): inline pkg-registry upload, match hero_proc pattern

Implications for cluster A propagation

This same 5-commit pattern applies near-verbatim to hero_books, hero_foundry. For hero_biz, the feature-drift bug (hero_biz#14) blocks pilot validation — but the workflow + build_lib changes are still applicable. The cluster A discovery from this pilot makes those propagations ~30 min each.

What remains for full closure

  • This PR squash-merge to development
  • Wire --from-ci into service_browser.nu (separate PR per the producer/consumer separation policy)
## Pilot validation complete ✅ `v0.1.4-rc5` from `development_mik_release_assets` is fully green on both matrix legs (amd64 + arm64-cross). All 9 workflow steps succeeded. Release published with 6 assets, package registry mirror also published. ### Verification **Release assets** (canonical Hero distribution path): | Asset | Size | |---|---| | hero_browser-linux-amd64 | 1.38 MB | | hero_browser-linux-arm64 | 978 KB | | hero_browser_server-linux-amd64 | 3.45 MB | | hero_browser_server-linux-arm64 | 2.60 MB | | hero_browser_ui-linux-amd64 | 1.46 MB | | hero_browser_ui-linux-arm64 | 1.18 MB | Public download (no auth, world-readable) confirmed: `HTTP 200` for `https://forge.ourworld.tf/lhumina_code/hero_browser/releases/download/v0.1.4-rc5/hero_browser-linux-amd64`. **Package registry** (secondary mirror): `hero_browser v0.1.4-rc5` published. ### What the pilot uncovered (4 bugs, all in shared `build_lib.sh` template) The pilot took 5 rc iterations because each one surfaced a new shared-helper drift from hero_proc's working canonical: | rc | Discovery | Fix commit | |---|---|---| | rc1 | "Set up job" hung 18 min then cancelled (transient runner issue) | n/a — auto-retried | | rc2 | Build failed: `error[E0463]: can't find crate for 'core'` — musl target missing | `217fd7a` — pre-install x86_64-unknown-linux-musl | | rc3 | `Create Release` step failed: `jq: command not found` | `929dd2c` — apt install jq | | rc4 | `publish_binaries` failed: `BIN_DIR not set` | `94570b6` — export BIN_DIR (later superseded) | | rc5 | `publish_binaries` 404'd on `/api/crates/` (wrong endpoint) and used wrong VERSION (buildenv 0.1.0 vs tag) | `ac4b3d8` — replaced with inline upload using `/api/packages/` matching hero_proc lines 108-135 | ### Feature branch ready for squash-merge 5 commits on `development_mik_release_assets`: 1. `edeb5eb` ci(build-linux): publish to Releases assets + pkg registry, not pkg only 2. `217fd7a` fix(build_lib): pre-install x86_64-unknown-linux-musl target 3. `929dd2c` fix(build_lib): apt install jq in setup_linux_toolchain 4. `94570b6` ci(build-linux): export BIN_DIR before publish_binaries (superseded by #5) 5. `ac4b3d8` ci(build-linux): inline pkg-registry upload, match hero_proc pattern ### Implications for cluster A propagation This same 5-commit pattern applies near-verbatim to hero_books, hero_foundry. For hero_biz, the feature-drift bug ([hero_biz#14](https://forge.ourworld.tf/lhumina_code/hero_biz/issues/14)) blocks pilot validation — but the workflow + build_lib changes are still applicable. The cluster A discovery from this pilot makes those propagations ~30 min each. ### What remains for full closure - This PR squash-merge to `development` - Wire `--from-ci` into `service_browser.nu` (separate PR per the producer/consumer separation policy)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_browser#16
No description provided.