feat(service_proc): add --from-ci install path for downloading CI artifacts #193
No reviewers
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!193
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "development_mik_release_artifacts_hero_skills_from_ci"
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?
Summary
First landing in the hero_demo#54 rollout — the consumer side of CI-built artifacts.
Adds
--from-citoservice_proc install. Downloads statically-linked binaries from Forgejo Releases instead of runningcargo buildon the deploy host. Seconds, not minutes; no toolchain dependency on the target.What this PR does NOT change
cargo build) is unchanged.--from-ciis opt-in.service_proc startstill callsinstallwithout--from-ci, so existing deploy flows behave identically.Where the artifacts come from
hero_proc's
.forgejo/workflows/build-linux.yamlhas been publishing static-musl binaries on everyv*tag push since v0.4.1 (2026-03-25). The pipeline already produces what we need — thehero_demo#54work was discovering the publisher side already exists; what's been missing is the consumer side. This PR is the consumer.Verified end-to-end
Against the live
v0.4.4release in a tmpdir HOME:ELF 64-bit … static-pie linked, stripped(verified viafile).hero_proc --versionreportshero_proc 0.4.4(verified by running the installed binary).--from-cicorrectly hits the skip-if-present guard ((pass --reset to refetch)).--resetcorrectly forces refetch.--from-ciagainst an unknown repo errors cleanly with the resolved API URL in the message.Design notes
lib.nuunder generic names (svc_resolve_release_tag,svc_install_from_ci) so the rest of the easy-tier services (per #54 §Rollout plan) can wire--from-ciwith a one-line call.linux-amd64(matches hero_proc's published assets). Repos publishing musl-tagged assets likelinux-amd64-musl(per #39's canonical template) override viaasset_suffixarg.--updateand--releaseare ignored under--from-ci(artifacts are always release-built; no source to pull). Documented in the install docstring.Followups (separate PRs)
--from-ciinto the other easy-tier services (service_router,service_aibroker,service_indexer,service_proxy,service_db,service_osis,service_books,service_biz,service_collab,service_foundry,service_logic,service_archipelagos,service_lib,service_code). One PR per service or one sweep PR.--from-ciintoservice_install_allso a whole-stack install can use CI artifacts.hero_proc/.forgejo/workflows/build-linux.yaml→release.yamlto match #39's canonical naming. No functional change.Test plan
svc_resolve_release_tagreturns correct tag forlatest(v0.4.4) and pinned (v0.4.1).svc_resolve_release_tagerrors cleanly on unknown repo.service_proc install --from-ci --version v0.4.4downloads, installs, verifies. All 3 binaries are static-pie ELF.service_proc install --from-ci --version v0.4.4re-run hits skip-if-present.service_proc install --from-ci --version v0.4.4 --resetforces refetch.hero_proc --versionreportshero_proc 0.4.4.service_proc install --from-ci, register + start through hero_proc, confirm full lifecycle works (next session, with user OK).Refs: lhumina_code/hero_demo#54
Signed-off-by: mik-tf
mik-tf referenced this pull request from lhumina_code/hero_demo2026-05-02 14:04:26 +00:00