fix release mgmt and make sure everyone understands #1

Closed
opened 2026-03-04 04:49:45 +00:00 by despiegk · 5 comments
Owner

Release Management & Build Pipeline

Status: Closed — core items completed in #12/#14. Remaining items moved to #15.


Completed

  • tgz release of dev docs — fixed
  • hero_os Docker image from pre-built binaries — Dockerfile.pack + build-local.sh (issue #12)
    • make dist compiles all binaries in rust:1.93-bookworm container
    • make pack creates thin debian:bookworm-slim image from dist/
    • make push pushes to forge.ourworld.tf/lhumina_code/hero_zero
    • make deploy does all of the above + deploys to herodev
    • make demo promotes :dev:demo and deploys to herodemo
  • Stale Dockerfiles (Dockerfile, Dockerfile.prod) deleted (issue #14)
  • Build pipeline fully documented in hero_services/README.md

Moved to #15

  • ARM/Intel cross-compilation — build binaries for both architectures
  • Getting started doc — how to install skills, use container to build, get full hero_os for development
  • #12 — Infrastructure Sync (build pipeline, Dockerfile.pack)
  • #13 — Smoke Tests & Service Bug Fixes
  • #14 — Cleanup & Branch Hygiene
  • #15 — Cross-compilation & Getting Started Docs
# Release Management & Build Pipeline **Status: Closed** — core items completed in #12/#14. Remaining items moved to #15. --- ## Completed - [x] tgz release of dev docs — [fixed](https://forge.ourworld.tf/geomind_code/dev_docs/actions/runs/80/jobs/1/attempt/1) - [x] hero_os Docker image from pre-built binaries — `Dockerfile.pack` + `build-local.sh` (issue #12) - `make dist` compiles all binaries in `rust:1.93-bookworm` container - `make pack` creates thin `debian:bookworm-slim` image from `dist/` - `make push` pushes to `forge.ourworld.tf/lhumina_code/hero_zero` - `make deploy` does all of the above + deploys to herodev - `make demo` promotes `:dev` → `:demo` and deploys to herodemo - [x] Stale Dockerfiles (`Dockerfile`, `Dockerfile.prod`) deleted (issue #14) - [x] Build pipeline fully documented in `hero_services/README.md` ## Moved to #15 - [ ] ARM/Intel cross-compilation — build binaries for both architectures - [ ] Getting started doc — how to install skills, use container to build, get full hero_os for development ## Related Issues - #12 — Infrastructure Sync (build pipeline, Dockerfile.pack) - #13 — Smoke Tests & Service Bug Fixes - #14 — Cleanup & Branch Hygiene - #15 — Cross-compilation & Getting Started Docs
despiegk added this to the ACTIVE project 2026-03-04 04:49:53 +00:00
Owner

Dev docs tgz release fixed: CI pipeline rebuilt (single job, versioned releases only), old stale releases cleaned up, v1.0.0 published and verified. One-liner install works: curl -sSfL .../install.sh | bash. See PRs #35, #36, #39, #41 on geomind_code/dev_docs.

Dev docs tgz release fixed: CI pipeline rebuilt (single job, versioned releases only), old stale releases cleaned up, v1.0.0 published and verified. One-liner install works: `curl -sSfL .../install.sh | bash`. See PRs #35, #36, #39, #41 on geomind_code/dev_docs.
Owner

Checkbox 3 update — hero_builder migration to Forge/Podman

Code complete. Migrated from Docker/ghcr.io to Podman/Forge:

  • buildenv.sh, Makefile, CI workflow, Containerfile, all scripts converted
  • Registry: forge.ourworld.tf/lhumina_code/hero_builder_base
  • Auth via FORGEJO_TOKEN (non-interactive)

CI blocked: runner host needs Podman installed. Filed mycelium/circle_ops#666.
PR ready to merge once unblocked: lhumina_code/hero_builder#4.

**Checkbox 3 update — hero_builder migration to Forge/Podman** Code complete. Migrated from Docker/ghcr.io to Podman/Forge: - buildenv.sh, Makefile, CI workflow, Containerfile, all scripts converted - Registry: `forge.ourworld.tf/lhumina_code/hero_builder_base` - Auth via FORGEJO_TOKEN (non-interactive) CI blocked: runner host needs Podman installed. Filed mycelium/circle_ops#666. PR ready to merge once unblocked: lhumina_code/hero_builder#4.
Owner

Checkbox 2 (arm/intel binaries) is blocked on the same ops dependency as checkbox 3 (mycelium/circle_ops#666 — Podman on runner host). Code changes for cross-compilation can proceed independently.

Related: #3 (service cleanup for demo readiness) — the binaries and container image are prerequisites for getting services running cleanly.

Checkbox 2 (arm/intel binaries) is blocked on the same ops dependency as checkbox 3 (mycelium/circle_ops#666 — Podman on runner host). Code changes for cross-compilation can proceed independently. Related: #3 (service cleanup for demo readiness) — the binaries and container image are prerequisites for getting services running cleanly.
Member

If we want to build container images inside workflows, then we have a few options as described in Forgejo docs. Among these, the best in terms of isolation/security and also the only one that's clearly compatible with Podman is the LXC approach.

The final recommended setup looks like this:

  • Host (bare metal Ubuntu, eg)
    • Outer LXC container (Foregejo runner binary runs here)
      • Docker/Podman with Docker compat (most workflows run here)
      • Inner LXC Container (workflows that need to build containers run here)
        • Podman
        • VM

As noted, these LXC runners can also host VMs inside, which we might find interesting for some use cases.

Some minor config is required to use Podman inside of the LXC environment. See my example here.

If we want to build container images inside workflows, then we have a few options as described in [Forgejo docs](https://forgejo.org/docs/next/admin/actions/docker-access). Among these, the best in terms of isolation/security and also the only one that's clearly compatible with Podman is the LXC approach. The final [recommended setup](https://forgejo.org/docs/next/admin/actions/runner-installation/#setting-up-the-container-environment) looks like this: * Host (bare metal Ubuntu, eg) * Outer LXC container (Foregejo runner binary runs here) * Docker/Podman with Docker compat (most workflows run here) * Inner LXC Container (workflows that need to build containers run here) * Podman * VM As noted, these LXC runners can also host VMs inside, which we might find interesting for some use cases. Some minor config is required to use Podman inside of the LXC environment. See my [example here](https://forge.ourworld.tf/scott/hero_builder/src/branch/development/.forgejo/workflows/build.yaml).
Owner

Ongoing work with ops. They are checking how to make it work with podman. Currently we have issues with the runners.

Ongoing work with ops. They are checking how to make it work with podman. Currently we have issues with the runners.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
3 participants
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/home#1
No description provided.