From 6a4e3626a698c0e609a84deb65dfaa55a549e68d Mon Sep 17 00:00:00 2001 From: moilanik Date: Sat, 13 Jun 2026 15:20:47 +0300 Subject: [PATCH] docs(adr): add directory ownership ADR 0006, fix provider workflow location --- {workflows => .gitea/workflows}/ci-engine.yml | 0 .gitea/workflows/ci.yml | 2 +- .../workflows}/config-provider.yml | 0 docs/adr/0006-directory-ownership.md | 87 +++++++------------ 4 files changed, 33 insertions(+), 56 deletions(-) rename {workflows => .gitea/workflows}/ci-engine.yml (100%) rename {workflows => .gitea/workflows}/config-provider.yml (100%) diff --git a/workflows/ci-engine.yml b/.gitea/workflows/ci-engine.yml similarity index 100% rename from workflows/ci-engine.yml rename to .gitea/workflows/ci-engine.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 4d80a48..e551a05 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -6,7 +6,7 @@ on: jobs: load-config: - uses: niko/gitea-ci-library/workflows/config-provider.yml@feature/pipeline-cleanup + uses: niko/gitea-ci-library/.gitea/workflows/config-provider.yml@feature/pipeline-cleanup with: config_path: .gitea/workflows/feature-env.conf diff --git a/workflows/config-provider.yml b/.gitea/workflows/config-provider.yml similarity index 100% rename from workflows/config-provider.yml rename to .gitea/workflows/config-provider.yml diff --git a/docs/adr/0006-directory-ownership.md b/docs/adr/0006-directory-ownership.md index e124cb5..1d658fe 100644 --- a/docs/adr/0006-directory-ownership.md +++ b/docs/adr/0006-directory-ownership.md @@ -2,79 +2,56 @@ ## Päätös -Provider-repossa (`gitea-ci-library`) on seuraavat kansiot ja tiedostot, -joilla on eri omistajuus- ja näkyvyyssäännöt: +Provider-repossa (`gitea-ci-library`) kansioiden omistajuus on seuraava: -| Kansio | Omistaja | Näkyvyys | Tyyppi | -|--------|----------|----------|--------| -| `workflows/` | Provider | Consumer kutsuu `uses:` | Reusable workflowt | -| `scripts/` | Provider | Vain providerin sisäinen | Bash-skriptit | -| `.gitea/workflows/` | Consumer | Consumerin oma pipeline | Pipeline-logiikka | -| `.gitea/scripts/` | Consumer | Consumerin oma | Consumer-skriptit | -| `.gitea/workflows/feature-env.conf` | Consumer | Consumerin konffi | KEY=VALUE config | +| Kansio / Tiedosto | Omistaja | Tyyppi | +|-------------------|----------|--------| +| `.gitea/workflows/` | Sekoitettu | Providerin reusable workflowt + consumerin pipeline | +| `.gitea/workflows/feature-env.conf` | Consumer | KEY=VALUE config | +| `.gitea/scripts/` | Consumer | Consumer-skriptit | +| `scripts/` | Provider | Providerin sisäiset työkalut | -## Perustelu +## Reusable workflowt — sijaintipakko -### Providerin `workflows/` (juuressa) +Gitea Actions vaatii, että `uses:`-direktiivillä kutsuttavat workflowt +ovat muodossa `{owner}/{repo}/.gitea/workflows/{file}@{ref}`. -Providerin reusable workflow -tiedostot, joita consumer kutsuu -`uses:`-direktiivillä. Consumerilla on lukunäkyvyys mutta ei -muokkausvastuuta. Esimerkki: +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. -```yaml -uses: niko/gitea-ci-library/workflows/config-provider.yml@v1 -``` +Erottelu on nimessä ja dokumentaatiossa, ei kansiorakenteessa: +- `config-provider.yml`, `ci-engine.yml` — providerin tarjoamia +- `ci.yml`, `build-feature.yml` — consumerin omistamia -Tämä on providerin julkinen rajapinta. Sijainti `workflows/` (juuressa) -eikä `.gitea/workflows/` korostaa, että kyseessä on providerin tarjoama -palvelu, ei consumerin oma pipeline. - -### Providerin `scripts/` (juuressa) +## Providerin `scripts/` (juuressa) Providerin sisäiset työkalut. Consumer ei koskaan kutsu näitä suoraan — vain providerin workflowt kutsuvat tupla checkoutin kautta: `.ci/scripts/publish-git-pages.sh`. -Consumerilla ei ole suoraa polkua näihin tiedostoihin — ne saavuttaa -vain providerin workflowjen kautta, jotka tupla checkouttaa providerin. +Consumerilla ei ole suoraa polkua näihin tiedostoihin ilman providerin +workflowa. -### Consumerin `.gitea/workflows/` +## Consumerin `.gitea/scripts/` -Consumerin oma pipeline-logiikka. Consumer omistaa ja muokkaa. -Provider ei koskaan ohita tätä kansiota — ADR 0005. +Consumerin omat skriptit, osana consumerin pipeline-logiikkaa. +Kutsutaan consumerin workflowista ilman tupla checkouttia: +`.gitea/scripts/bats-report.sh`. -Tässä repossa (dogfood) consumer on sama repo, joten `.gitea/workflows/` -näyttää providerin tiedostojen rinnalla. Arkkitehtuurisesti ne ovat -erillisiä: jos consumer olisi eri repo, `.gitea/workflows/` olisi siellä. +## Consumerin `.gitea/workflows/feature-env.conf` -### Consumerin `.gitea/scripts/` - -Consumerin omat skriptit, jotka ovat osa consumerin pipeline-logiikkaa. -Provider ei omista eikä ylläpidä näitä. - -Consumer-skriptit kutsutaan consumerin workflowista ilman tupla -checkouttia: `.gitea/scripts/bats-report.sh`. - -### Consumerin `.gitea/workflows/feature-env.conf` - -Consumerin konfiguraatiotiedosto consumerin omassa kansiossa. -Providerin `config-provider.yml` lukee tämän ja muuntaa JSONiksi, mutta -consumer omistaa sisällön. +Consumerin konfiguraatiotiedosto. Providerin `config-provider.yml` +lukee tämän ja muuntaa JSONiksi, mutta consumer omistaa sisällön. ## Vaikutukset -- Provider voi muuttaa `workflows/` ja `scripts/` -kansioiden sisältöä +- Provider voi muuttaa `scripts/` ja `config-provider.yml` sisältöä ilman consumerin hyväksyntää (versiovaihdon yhteydessä) -- Consumer voi muuttaa `.gitea/workflows/` ja `.gitea/scripts/` -kansioiden - sisältöä ilman providerin muutoksia +- Consumer voi muuttaa `.gitea/workflows/ci.yml`, + `.gitea/workflows/build-feature.yml` ja `.gitea/scripts/` sisältöä + ilman providerin muutoksia - Providerin workflowt käyttävät `.ci/scripts/...` -polkua (tupla checkout) - Consumerin workflowt käyttävät `.gitea/scripts/...` -polkua (natiivi checkout) -- Config-tiedoston muoto on consumerin päätettävissä — provider vain lukee - -## Vertailu vanhaan rakenteeseen - -| Entinen sijainti | Uusi sijainti | Peruste | -|------------------|---------------|---------| -| `.gitea/workflows/config-provider.yml` | `workflows/config-provider.yml` | Providerin julkinen rajapinta pois consumer-kansiosta | -| `.gitea/workflows/ci-engine.yml` | `workflows/ci-engine.yml` | Sama peruste | -| `scripts/bats-report.sh` | `.gitea/scripts/bats-report.sh` | Consumerin oma skripti | +- Sekä provider että consumer jakavat `.gitea/workflows/` — tämä on + Gitea Actionsin tekninen rajoite, ei suunnittelupäätös