No description
Find a file
automation bebac7b7aa
Some checks failed
build-and-deploy / build-deploy (push) Failing after 1s
fix(ci): POSIX sh (job image has no bash)
2026-09-14 10:18:04 +03:00
.forgejo/workflows fix(ci): POSIX sh (job image has no bash) 2026-09-14 10:18:04 +03:00
deploy seed: devroadmap-demo — self-hosted CI loop 2026-09-14 10:08:07 +03:00
site seed: devroadmap-demo — self-hosted CI loop 2026-09-14 10:08:07 +03:00
Dockerfile seed: devroadmap-demo — self-hosted CI loop 2026-09-14 10:08:07 +03:00
README.md seed: devroadmap-demo — self-hosted CI loop 2026-09-14 10:08:07 +03:00

devroadmap-demo — self-hosted CI/CD loop demo

Seed for the Forgejo repo devroadmap-demo. It demonstrates a fully self-hosted build→deploy loop with no GitHub in the path:

push to Forgejo → Forgejo Actions (act_runner + DinD) build arm64 image
   → push to Harbor (harbor.devroadmap.ru) → bump deploy/ image tag → push back
   → ArgoCD (watching this repo) syncs → live in k3s (ns devroadmap-demo, VIP .233)

This is a trimmed derivative of the developer-roadmap project: a static landing served by nginx, kept light so the in-cluster arm64 build is fast and reliable. The point is the pipeline, not the build weight — swap in the full Astro SSR build (Node 22 + pnpm, RU npm mirror) later by replacing the Dockerfile.

Layout

  • Dockerfile — nginx:alpine; stamps the commit SHA + build date into the page.
  • site/ — the static site.
  • .forgejo/workflows/ci.yml — the loop (build → Harbor → tag bump → push).
  • deploy/ — the k8s manifests ArgoCD renders (kustomization + deployment + service).

Bootstrap

This repo is created and pushed during the Forgejo bring-up — see homelab-gitops/docs/forgejo.md for the full runbook (repo secrets HARBOR_ROBOT_USER/HARBOR_ROBOT_PASSWORD/FORGEJO_TOKEN, the runner, and the ArgoCD Application that watches this repo).