Files
gitea-ci-library/docs/ai-context.md
T
moilanik 28754bd410
ci-report POC report published
CI / call-engine (push) Successful in 14s
docs: POC-katselmus — git-pages retention, ADRt, dokumenttipäivitykset
- 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
2026-06-12 08:55:23 +03:00

3.7 KiB
Raw Blame History

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.yml on 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 (00010005)
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.yml lukittu 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 — kuuluu git-pages/docs/-alle
  • Älä POSTaa commit-status APIin jokaiselle vaiheelle — natiivi riittää