GitHub a CI/CD
Repozitář, ochrana větve main, automatické testy, image v registry a nasazení – co se nastavilo a proč.
Na této stránce
V jedné větě: Každá změna jde přes pull request, kde ji CI otestuje; po sloučení do
mainse sama sestaví do image a nasadí do cloudu. Nic se nedělá ručně na serveru.
Pipeline
flowchart LR
pr["Pull request"] --> bt["Build a testy<br/>(povinný check)"]
bt --> img1["Zkušební build image<br/>(jen x86, bez push)"]
bt -->|"zeleně → lze sloučit"| main["main"]
main --> bt2["Build a testy"]
bt2 --> img2["Image web + inventory-api<br/>amd64 + arm64 → GHCR"]
img2 --> dep["Deploy<br/>environment production"]
dep --> vm["VM v OCI"]
dep --> smoke["Smoke test<br/>HTTPS + /health"]
click bt "/Docs/github/ci"
click img2 "/Docs/github/ci"
click dep "/Docs/github/cd"
click main "/Docs/github/repozitar"
| Stránka | Obsah |
|---|---|
| Repozitář a ochrana | veřejný repozitář, ruleset main-protection, secret scanning, Dependabot |
| CI – build, testy, image | workflow ci.yml, cache, artefakty, multi-arch image, GHCR |
| CD – nasazení | workflow deploy.yml, Tailscale, vynucený příkaz, deploy.sh, rollback |
| Secrets a konfigurace | kde leží tajné hodnoty, jak se dostanou na VM a jak se mění |
Proč GitHub Actions
- Kód už na GitHubu je – žádná další služba ani účet.
- Pro veřejný repozitář zdarma a bez limitu minut; registry (GHCR) také.
- Workflow jsou YAML v repozitáři – mění se stejně jako kód, přes PR.
Alternativy: GitLab CI, Azure DevOps, Jenkins (vlastní server). Pro projekt na GitHubu nedávají smysl.