4.1 KiB
4.1 KiB
AI Context: Gitea Actions CI -kirjasto
Updated: 2026-06-08
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ä ja konfiguroivat itsensä ci-flow-values.yaml:lla.
Architecture
- 4 reusable workflow'ta:
ci-feature.yml,ci-master.yml,deploy.yml,test.yml - 4 jaettua bash-skriptiä (
scripts/):report-status.sh,dispatch-workflow.sh,push-reports.sh,tag-commit.sh - Raportit MinIO:ssa (S3 + static web), OIDC-autentikointi Traefikin kautta
- Cross-repo commit traceability Gitea REST API:n kautta
report-service/-moduuli samassa repossa: raporttiskriptit, retention CronJob, index.html-generointi- Normatiivinen arkkitehtuuri:
docs/architecture.md, perustelutdocs/design-rationale.md
Repository Structure
| Path | Purpose |
|---|---|
.gitea/workflows/ |
Reusable workflow -tiedostot (ci-feature.yml, ci-master.yml, deploy.yml, test.yml) |
scripts/ |
Jaetut bash-skriptit |
report-service/ |
Raporttipalvelun koodi (retention, indeksigenerointi) |
docs/ |
Arkkitehtuuri-, vaatimus- ja konfiguraatiodokumentaatio |
docs/tickets/ |
Toteutustiketit (0001–0012), yksi per feature-branch |
docs/test-plan/ |
TDD-opas: 3-kerrosmalli, kehityslooppi, mock, kontekstikuratointi |
docs/test-plan/tdd-guide.md |
Testivetoisen kehityksen menetelmädokumentti |
tests/ |
Bats-testit skripteille ja workflow-validointi |
tests/features/ |
Cucumber .feature-tiedostot (yksi per tiketti, tägätty @mock/@real/@ticket-NNNN) |
tests/helpers/ |
Jaettu mock-palvelin (Gitea API + MinIO) |
.gitea/workflows/ci.yml |
Kirjaston oma CI — dogfood (käyttää itse itseään) |
Key Technical Decisions
- Vain Gitea. Ei multi-platform-tukea (GitLab, BitBucket, GitHub)
- Ei omaa runtimea. Reusable workflowt, ei Docker custom actioneita (ellei pakko)
- Konfiguraatio repoon.
ci-flow-values.yamlprojektin juuressa, infra-asetukset Gitea org secrets/variables - Vaiheittainen test flow. Ei rinnakkaista suoritusta — deterministinen, debuggattava
- Raportit MinIO:ssa. Gitea artifact-järjestelmä ei tue HTML-selailtavuutta
- Docker-rekisterit: MVP:ssä vain Gitea Packages. Factory/adapter-pattern valmiina Artifactorylle/Nexukselle
- MVP-scope:
doNotDowngradeei mukana, vain Gitea Packages docker-rekisterinä
Tech Stack
- Runtime: Bash 4.0+, curl 7.0+, jq 1.6+, git 2.30+, MinIO client (
mc) - Alusta: Gitea Actions 1.21+, Gitea act runner 0.2+
- Integraatiot: Gitea REST API (
/api/v1/), MinIO S3 API, SonarQube REST API - Tuetut build-ekosysteemit: Java/Maven, Java/Gradle, Node.js/npm
- Tuetut testikehykset: Cucumber, JUnit, JaCoCo, Maven Site, custom HTML
Common Commands
- Workflow-triggerit:
pushbranchiin taiworkflow_dispatch - Skriptien kutsuminen tapahtuu workflow-stepeistä, ei paikallisesti
ci-flow-values.yamlvalidointi: skeemadocs/config-model.md:ssa- Bats-testit:
bats tests/— ajaa kaikki skripti- ja workflow-testit - Testit vaativat:
bats(Bash Automated Testing System),jq,yq
Development Process
- TDD: Red-Green-Refactor jokaiselle tiketille. Testit ensin, toteutus vasta kun testi epäonnistuu.
- Ominaisuusbranchit:
feature/NNNN-tiketin-nimi(esim.feature/0001-report-status-sh) - Yksi tiketti per sessio. Tiketit riippuvuusjärjestyksessä 0001 → 0012.
- Ennen jokaista tikettiä: lataa
docs/test-plan/tdd-guide.md+ tiketin Required context -skillin lisäksi - Dogfood:
.gitea/workflows/ci.yml— kirjaston oma CI käyttää omia reusable workflow'itaan
What NOT to Do
- Älä lisää tukea muille Git-alustoille (GitLab, BitBucket, GitHub)
- Älä lisää Docker custom actioneita ilman pakottavaa syytä
- Älä siirrä konfiguraatiota pois reposita (
ci-flow-values.yaml) - Älä lisää rinnakkaista test flow -suoritusta
- Älä lisää ulkoista orkestraattoria — Gitea REST API riittää
- Älä käytä
repository_dispatch-webhookia test flow -ketjutukseen