- ADR 0004: commit-status-periaate (natiivi riittää, API vain custom-linkkiin)
- ADR 0005: provider & consumer -malli (ci-engine.yml lukittu rajapinta)
- docs/design-rationale: uusi periaate 1 "Hyödynnä natiivia",
periaate 2 korjattu (API vain tarvittaessa),
periaate 6 (MinIO→git-pages), teknologiavalinnat poistettu
- docs/config-model: isContainerBuild→isArtifactBuild, Docker-labelit poistettu
- docs/ai-context: monorepo-kuvaus (git-pages oma kokonaisuus, ohut rajapinta)
- docs/architecture, tech-stack, report-hosting, shared-scripts, workflows:
MinIO→git-pages, provider agnostinen build-ekosysteemeille
- docs/adr/: ADRt siirretty decisions/→adr/
- git-pages/docs: retention-osiot päivitetty CronJob→sidecar+HTTP API,
URL-kaava korjattu (reports/{sha8}/)
- git-pages/docs/implementation-notes: uusi (storage v2, Host-header,
whiteout, .init, PATCH+directoryt)
- git-pages/templates/init-job.yaml: post-install init (.index)
- scripts/publish-git-pages.sh: PUT-fallback poistettu (init hoitaa),
palauttaa BASE URL ilman index.html
3.7 KiB
AI Context: Gitea Actions CI -kirjasto
Updated: 2026-06-12 (POC-vaihe, suunniteltu uudelleenkirjoitus)
Project Overview
Gitea Actions reusable workflow -kirjasto mikropalveluiden build-, testaus-,
raportointi-, deployment- ja test flow -prosessien orkestrointiin. Korvaa
ci-jenkins-library:n Gitea-natiivilla toteutuksella. Mikropalvelut
käyttävät kirjastoa uses:-direktiivillä.
POC on valmis: raporttien julkaisu git-pagesiin ja commit-status linkillä toimii.
Monorepo: kaksi erillistä kokonaisuutta
Tämä repo on käytännössä monorepo, jossa on kaksi itsenäistä osaa:
1. Juuri (gitea-ci-library)
Provider-kirjasto: reusable workflowt, scriptit, ADRt, dokumentaatio.
Rajapinta: .gitea/workflows/ci-engine.yml — ainoa pinta, jota consumerit
kutsuvat.
2. git-pages/ — oma kokonaisuus
Helm-chartti Codeberg git-pagesille. Täysin itsenäinen — oma dokumentaatio,
omat tekniset valinnat, oma design-rationale. Kohdeltava kuten se olisi jo
oma reponsa: kaikki git-pages-spesifi tieto kuuluu git-pages/docs/- alle,
ei juuren docs/-kansioon.
Rajapinta juuren ja git-pagesin välillä
Ohut ja yksiselitteinen:
scripts/publish-git-pages.sh <report-dir>
→ PATCH tar osoitteeseen PAGES_HOST
→ palauttaa BASE URL:n
git-pages tarjoaa:
- HTTP endpoint (GET/PATCH/PUT)
- retention (automaattinen)
- TLS, BasicAuth (Traefik)
Juuri ei tiedä git-pagesin sisäisestä toiminnasta (storage v2, .index, blob-arkkitehtuuri). Git-pages ei tiedä workflowista, scripteistä tai provider-logiikasta.
Architecture (POC-tila)
- Provider & Consumer -malli:
ci-engine.ymlon lukittu rajapinta. ADR 0005. - Raporttien hostaus: git-pages Helm-chartilla (
git-pages/). - Retention: sidecar samassa podissa, HTTP API localhost:3000, Gitea API branch-check.
- Commit-status: Gitea Actions näyttää automaattisesti. API vain custom-linkkiin. ADR 0004.
- Julkaisu:
publish-git-pages.sh→ PATCH tar git-pagesiin.
Repository Structure
| Path | Purpose |
|---|---|
.gitea/workflows/ |
ci-engine.yml (ainoa reusable workflow POC-vaiheessa) |
scripts/ |
publish-git-pages.sh, report-status.sh, dispatch-workflow.sh |
git-pages/ |
Oma kokonaisuus: Helm-chartti + docs + retention |
docs/ |
Root-tason arkkitehtuuri, ADRt (0001–0005) |
docs/adr/ |
Architecture Decision Records |
tests/ |
Bats-testit skripteille |
.gitea/workflows/ci.yml |
Dogfood — kutsuu ci-engine.yml:a |
Tarkemmat git-pages-asiat: git-pages/docs/ (implementation-notes,
architecture, design-rationale, secrets, tech-stack).
Key Technical Decisions
- Provider & Consumer:
ci-engine.ymllukittu rajapinta, muu koodi vapaasti muutettavissa - Vain Gitea, vain reusable workflowt: ei custom actioneita, ei multi-platform
- Raportit git-pagesissa: HTML selailtavissa, retention automaattinen
- Git-pages omana kokonaisuutena: voi erottaa omaksi repokseen tulevaisuudessa
Tech Stack (POC)
- Runtime: Bash, curl, jq, python3 (retention whiteout)
- Alusta: Gitea Actions, Gitea act runner
- Hostaus: git-pages 0.9.1 (Codeberg), Traefik, cert-manager
- Integraatiot: Gitea REST API, Gitea Packages
Common Commands
- Helm-asennus:
helm upgrade --install git-pages ./git-pages -n <ns> -f <values> - Julkaisu:
bash scripts/publish-git-pages.sh <report-dir> - Status:
bash scripts/report-status.sh <state> <desc> <url> <context>
What NOT to Do
- Älä lisää tukea muille Git-alustoille
- Älä lisää Docker custom actioneita ilman pakottavaa syytä
- Älä kirjoita git-pages-spesifiä tietoa juuren
docs/-kansioon — kuuluugit-pages/docs/-alle - Älä POSTaa commit-status APIin jokaiselle vaiheelle — natiivi riittää