feat(deploy): Publish images from CI, pull from registry #1

Closed
picklemustard wants to merge 0 commits from ci/forgejo-actions into main

Replaces docker save | k3s ctr images import with a Forgejo
container registry round trip, and builds the image in Forgejo
Actions instead of by hand.

  • Workflows ported from Homelab/lab-endpoint-automation, which
    already solved this against the same runner and registry:
    ci.yml gates main and PRs, release.yml handles v* tags, and
    both call the reusable image.yml through a needs: edge --
    Forgejo Actions has no workflow_run event.
  • image.yml uses podman, not docker. The runner's config sets
    container.docker_host to '-', so no daemon socket reaches a
    job container and docker build has nothing to talk to.
  • Dockerfile base images gain their docker.io/library prefix
    for the same reason: podman resolves a short name against the
    host's unqualified-search-registries, and Debian's package
    defines none.
  • Cluster overlay drops the bundled Postgres for the shared
    instance, adds the forgejo-registry pull secret to both
    workloads, and pins ingressClassName.
  • CI publishes but never deploys: the overlay's newTag is
    what the cluster runs, and bumping it is the deploy.

Requires REGISTRY_USER and REGISTRY_TOKEN under repo Settings,
Actions, Secrets; both callers pass secrets: inherit.

Replaces `docker save | k3s ctr images import` with a Forgejo container registry round trip, and builds the image in Forgejo Actions instead of by hand. - Workflows ported from Homelab/lab-endpoint-automation, which already solved this against the same runner and registry: ci.yml gates main and PRs, release.yml handles v* tags, and both call the reusable image.yml through a `needs:` edge -- Forgejo Actions has no workflow_run event. - image.yml uses podman, not docker. The runner's config sets container.docker_host to '-', so no daemon socket reaches a job container and `docker build` has nothing to talk to. - Dockerfile base images gain their docker.io/library prefix for the same reason: podman resolves a short name against the host's unqualified-search-registries, and Debian's package defines none. - Cluster overlay drops the bundled Postgres for the shared instance, adds the forgejo-registry pull secret to both workloads, and pins ingressClassName. - CI publishes but never deploys: the overlay's `newTag` is what the cluster runs, and bumping it is the deploy. Requires REGISTRY_USER and REGISTRY_TOKEN under repo Settings, Actions, Secrets; both callers pass `secrets: inherit`.
feat(deploy): Publish images from CI, pull from registry
Some checks failed
CI / test (pull_request) Failing after 1m19s
CI / publish (pull_request) Has been skipped
84f671477c
Replaces `docker save | k3s ctr images import` with a Forgejo
container registry round trip, and builds the image in Forgejo
Actions instead of by hand.

- Workflows ported from Homelab/lab-endpoint-automation, which
  already solved this against the same runner and registry:
  ci.yml gates main and PRs, release.yml handles v* tags, and
  both call the reusable image.yml through a `needs:` edge --
  Forgejo Actions has no workflow_run event.
- image.yml uses podman, not docker. The runner's config sets
  container.docker_host to '-', so no daemon socket reaches a
  job container and `docker build` has nothing to talk to.
- Dockerfile base images gain their docker.io/library prefix
  for the same reason: podman resolves a short name against the
  host's unqualified-search-registries, and Debian's package
  defines none.
- Cluster overlay drops the bundled Postgres for the shared
  instance, adds the forgejo-registry pull secret to both
  workloads, and pins ingressClassName.
- CI publishes but never deploys: the overlay's `newTag` is
  what the cluster runs, and bumping it is the deploy.

Requires REGISTRY_USER and REGISTRY_TOKEN under repo Settings,
Actions, Secrets; both callers pass `secrets: inherit`.
picklemustard closed this pull request 2026-08-22 01:22:35 +00:00
Some checks failed
CI / test (pull_request) Failing after 1m19s
CI / publish (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
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
Homelab/lab-skimmer!1
No description provided.