diff --git a/.gitea/workflows/ci-engine.yml b/.gitea/workflows/ci-engine.yml deleted file mode 100644 index 5cdace7..0000000 --- a/.gitea/workflows/ci-engine.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: CI Engine -on: - workflow_call: - inputs: - config-file: - required: true - type: string - secrets: - GITEA_TOKEN: - required: true - GIT_PAGES_PUBLISH_TOKEN: - required: true - -jobs: - publish: - runs-on: ubuntu-latest - env: - GITEA_API_URL: https://gitea.app.keskikuja.site - GIT_PAGES_URL: https://ci-reports.helm-dev.keskikuja.site - GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} - GIT_PAGES_PUBLISH_TOKEN: ${{ secrets.GIT_PAGES_PUBLISH_TOKEN }} - steps: - - uses: actions/checkout@v4 - - - name: Publish reports - run: bash scripts/publish.sh reports diff --git a/README.md b/README.md index 5a1eded..644a580 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@ Consumer kutsuu provideria `uses:`-viittauksella. Ei discoveryä — polku kovak ### Polun muodostus ``` -{owner}/{repo}/.gitea/workflows/ci-engine.yml@{ref} +{owner}/{repo}/.gitea/workflows/build-feature.yml@{ref} ``` | Osa | Mistä | Esimerkki (homelab) | |-----|-------|---------------------| | `owner` | Repopolun ensimmäinen osa — **käyttäjänimi tai org** | `niko` | | `repo` | Repon nimi | `gitea-ci-library` | -| tiedosto | Providerin workflow | `.gitea/workflows/ci-engine.yml` | +| tiedosto | Providerin workflow | `.gitea/workflows/build-feature.yml` | | `@ref` | Tag tai branch provider-repossa | `@v1` (tuotanto) | **Owner ei ole org-pakotettu.** Homelabissa ei välttämättä ole organisaatiotasoa — silloin owner on @@ -36,7 +36,7 @@ Consumerin `ci.yml`: ```yaml jobs: call-engine: - uses: niko/gitea-ci-library/.gitea/workflows/ci-engine.yml@v1 + uses: niko/gitea-ci-library/.gitea/workflows/build-feature.yml@v1 secrets: inherit ``` @@ -56,7 +56,7 @@ niko/gitea-ci-library ←→ niko/gitea-ci-library (mirror tai push-mirror) niko/gitea-ci-library/... niko/gitea-ci-library/... ``` -Mirror pitää `ci-engine.yml`:n ja tagit (`v1`) saatavilla kulloisellakin palvelimella. Tämä korvaa +Mirror pitää `build-feature.yml`:n ja tagit (`v1`) saatavilla kulloisellakin palvelimella. Tämä korvaa provider-repon checkout-hackit workflowissa — binding hoituu Gitean natiivilla `uses:`-mekanismilla. Periaatteet: [tmp/data-flow-design.md](tmp/data-flow-design.md) diff --git a/docs/adr/0005-provider-consumer.md b/docs/adr/0005-provider-consumer.md index b898ae1..5475a70 100644 --- a/docs/adr/0005-provider-consumer.md +++ b/docs/adr/0005-provider-consumer.md @@ -3,7 +3,7 @@ ## Päätös Provider (gitea-ci-library) ja Consumer (mikropalveluprojekti) erotetaan -selkeällä rajapinnalla: `.gitea/workflows/ci-engine.yml` on ainoa pinta, +selkeällä rajapinnalla: `.gitea/workflows/build-feature.yml` on ainoa pinta, jota consumer kutsuu. Kaikki muu providerin koodi (scriptit, git-pages-helmi, retention) on @@ -18,7 +18,7 @@ riippuvuutta. # .gitea/workflows/ci.yml — consumerin repo jobs: ci: - uses: niko/gitea-ci-library/.gitea/workflows/ci-engine.yml@v1 + uses: niko/gitea-ci-library/.gitea/workflows/build-feature.yml@v1 secrets: inherit ``` @@ -44,13 +44,13 @@ Consumer: - Git-pages Helm-chartti - Retention sidecar - Scriptit ja työkalut (toteutus avoin, uudelleenkirjoitettavissa) -- Kaikki paitsi `ci-engine.yml` on sisäistä toteutusta ja voi muuttua +- Kaikki paitsi `build-feature.yml` on sisäistä toteutusta ja voi muuttua ilman versiopäivitystä ## Periaatteet -1. `ci-engine.yml` on **lukittu rajapinta**. Consumer kutsuu tätä, ei - koskaan providerin scriptejä suoraan. `ci-engine.yml` voi muuttua vain +1. `build-feature.yml` on **lukittu rajapinta**. Consumer kutsuu tätä, ei + koskaan providerin scriptejä suoraan. `build-feature.yml` voi muuttua vain version vaihtuessa. 2. Consumer omistaa pipeline-logiikan. Provider ei tiedä mitä testejä ajetaan, missä järjestyksessä tai millä työkaluilla. diff --git a/docs/adr/0006-directory-ownership.md b/docs/adr/0006-directory-ownership.md index c755542..5df4b4b 100644 --- a/docs/adr/0006-directory-ownership.md +++ b/docs/adr/0006-directory-ownership.md @@ -30,12 +30,12 @@ uses: org/repo/scripts/workflow.yml@branch ``` Tästä syystä providerin reusable workflowt (`config-provider.yml`, -`ci-engine.yml`) ovat samassa `.gitea/workflows/`-kansiossa consumerin -pipeline-tiedostojen (`ci.yml`, `build-feature.yml`) kanssa. +`build-feature.yml`) ovat samassa `.gitea/workflows/`-kansiossa consumerin +pipeline-tiedostojen (`ci.yml`) kanssa. Erottelu on nimessä ja dokumentaatiossa, ei kansiorakenteessa: -- `config-provider.yml`, `ci-engine.yml` — providerin tarjoamia -- `ci.yml`, `build-feature.yml` — consumerin omistamia +- `config-provider.yml`, `build-feature.yml` — providerin tarjoamia +- `ci.yml` — consumerin omistamia ## Providerin `scripts/` (juuressa) diff --git a/docs/ai-context.md b/docs/ai-context.md index 6deda3f..ebf5faf 100644 --- a/docs/ai-context.md +++ b/docs/ai-context.md @@ -17,8 +17,7 @@ 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. +Consumer kutsuu `build-feature.yml`-workflowa `uses:`-direktiivillä. ### 2. `git-pages/` — oma kokonaisuus Helm-chartti Codeberg git-pagesille. Täysin itsenäinen — oma dokumentaatio, @@ -46,7 +45,7 @@ blob-arkkitehtuuri). Git-pages ei tiedä workflowista, scripteistä tai provider-logiikasta. ## Architecture (POC-tila) -- **Provider & Consumer -malli**: `ci-engine.yml` on lukittu rajapinta. +- **Provider & Consumer -malli**: `build-feature.yml` on lukittu rajapinta. ADR 0005. - **Raporttien hostaus**: git-pages Helm-chartilla (`git-pages/`), `GIT_PAGES_URL` määrittää perusosoitteen. - **Retention**: sidecar samassa podissa, HTTP API localhost:3000, @@ -59,19 +58,19 @@ provider-logiikasta. | Path | Purpose | |---|---| -| `.gitea/workflows/` | `ci-engine.yml` (ainoa reusable workflow POC-vaiheessa) | +| `.gitea/workflows/` | Reusable workflowt (`build-feature.yml`, `config-provider.yml`) | | `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 | +| `.gitea/workflows/ci.yml` | Dogfood — kutsuu `build-feature.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 +- **Provider & Consumer**: `build-feature.yml` lukittu rajapinta, muu koodi vapaasti muutettavissa - **Vain Gitea, vain reusable workflowt**: ei custom actioneita, ei multi-platform diff --git a/docs/architecture.md b/docs/architecture.md index 3e6bad3..fa8f619 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -1,9 +1,6 @@ # Architecture — Gitea Actions CI -kirjasto -> ⚠️ POC-vaihe. Tämä dokumentti kuvaa suunniteltua arkkitehtuuria. Toteutus -> on edelleen kehitysvaiheessa (`ci-engine.yml` on ainoa reusable workflow). -> Odota uudelleenkirjoitusta ennen kuin luotat tähän dokumenttiin. -> +> ⚠️ POC-vaihe. Tämä dokumentti kuvaa suunniteltua arkkitehtuuria. > Normatiivinen lähde: ADR 0004, ADR 0005, `docs/design-rationale.md`. --- @@ -21,7 +18,7 @@ Kirjasto on Gitea-spesifi. Raportit hallinnoidaan git-pages Helm-chartilla | Rooli | Kuvaus | |-------|--------| -| **Provider** | `gitea-ci-library` — tarjoaa `ci-engine.yml`:n (lukittu rajapinta) sekä scriptit | +| **Provider** | `gitea-ci-library` — tarjoaa `build-feature.yml` (lukittu rajapinta) sekä scriptit | | **Consumer** | Mikropalveluprojekti — kutsuu `uses:`-direktiivillä, omistaa pipeline-logiikan | Tarkemmin: ADR 0005. @@ -30,10 +27,10 @@ Tarkemmin: ADR 0005. | Komponentti | Tila | |-------------|------| -| `ci-engine.yml` | Toimii POC-tasolla. Ainoa reusable workflow. | +| `build-feature.yml` | Toimii. Ainoa reusable workflow. | | `publish-git-pages.sh` | Toimii. PATCH tar git-pagesiin. | | `report-status.sh` | Toimii. POSTaa commit-status (vain custom-linkkiin). | -| `dispatch-workflow.sh` | Suunniteltu, ei toteutettu POCissa. | +| `dispatch-workflow.sh` | Toimii. Dispatchee workflown ja pollaa valmistumista. | | `git-pages/` | Helm-chartti raporttien hostaukseen. Oma kokonaisuus, tarkemmin: `git-pages/docs/`. | ## Ulkoiset palvelut @@ -43,10 +40,9 @@ Tarkemmin: ADR 0005. | **Gitea REST API** | Commit-status, workflow-dispatch, run-pollaus | | **Gitea Packages** | Docker-imagen säilytys | | **git-pages** | Raporttien hostaus | -| **SonarQube** | Koodin laadun analyysi (suunniteltu) | ## Arkkitehtuuriset rajoitteet -- `ci-engine.yml` on ainoa consumerin kutsuma rajapinta (ADR 0005) +- `build-feature.yml` on ainoa consumerin kutsuma rajapinta (ADR 0005) - Gitea Actionsin natiivi commit-status on ensisijainen (ADR 0004) - Raportit ovat julkisia URL:lla (osoite tunnettava) diff --git a/docs/workflows.md b/docs/workflows.md index a6bd90b..1544372 100644 --- a/docs/workflows.md +++ b/docs/workflows.md @@ -1,8 +1,8 @@ # Reusable workflowt > ⚠️ **POC-vaihe.** Tämä dokumentti kuvaa suunniteltuja workflow'ta -> (ci-feature, ci-master, deploy, test). POCissa on toteutettu vain -> `ci-engine.yml`. Uudelleenkirjoitus odottaa. +> (ci-feature, ci-master, deploy, test). POCissa on toteutettu +> `build-feature.yml`. Uudelleenkirjoitus odottaa. ---