Files
gitea-ci-library/docs/adr/0006-directory-ownership.md
T
moilanik ba9717d02c
CI Main / Load example-gitea-env.conf to pipeline env (push) Successful in 17s
CI Main / Check existing artifact (push) Successful in 11s
CI Main / Bats tests (push) Successful in 1m40s
unit-tests Link to Bats reports
acc-tests Link to Cucumber reports
CI Main / Cucumber tests (push) Failing after 41s
CI Main / Build & Push Docker (push) Has been skipped
CI Main / Report Summary (push) Successful in 6s
viimeinen testi
2026-06-15 17:10:21 +03:00

70 lines
2.6 KiB
Markdown

# 6. Directory ownership — provider vs consumer
## Päätös
Provider-repossa (`gitea-ci-library`) kansioiden omistajuus on seuraava:
| Kansio / Tiedosto | Omistaja | Tyyppi |
|-------------------|----------|--------|
| `.gitea/workflows/` | Sekoitettu | Providerin reusable workflowt + consumerin example-pipeline |
| `.gitea/workflows/example-gitea-env.conf` | Consumer | KEY=VALUE config |
| `.gitea/scripts/` | Consumer | Consumer-skriptit |
| `scripts/` | Provider | Providerin sisäiset työkalut |
## Reusable workflowt — sijaintipakko
Gitea Actions vaatii, että `uses:`-direktiivillä kutsuttavat workflowt
ovat muodossa `{owner}/{repo}/.gitea/workflows/{file}@{ref}`.
**Tämä on Gitea Actionsin asettama tekninen rajoite.** Toimivia
polkuja ovat vain:
```
# ✅ kelpaa
uses: org/repo/.gitea/workflows/file.yml@branch
# ❌ eivät kelpaa
uses: org/repo/workflows/file.yml@branch
uses: org/repo/.gitea/workflows/path/file.yml@branch
uses: org/repo/scripts/workflow.yml@branch
```
Tästä syystä providerin reusable workflowt (`config-provider.yml`,
`check-version.yml`, `docker-build-push.yml`) ovat samassa `.gitea/workflows/`-kansiossa
consumerin esimerkkipipeline-tiedostojen (`example-*`) kanssa.
Erottelu on nimessä ja dokumentaatiossa, ei kansiorakenteessa:
- `config-provider.yml`, `check-version.yml`, `docker-build-push.yml` — providerin tarjoamia
- `example-feature.yml`, `example-main.yml`, `example-*.yml` — consumer-esimerkkejä
## 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 ilman providerin
workflowa.
## Consumerin `.gitea/scripts/`
Consumerin omat skriptit, osana consumerin pipeline-logiikkaa.
Kutsutaan consumerin workflowista ilman tupla checkouttia:
`.gitea/scripts/bats-report.sh`.
## Consumerin `.gitea/workflows/example-gitea-env.conf`
Consumerin konfiguraatiotiedosto. Providerin `config-provider.yml`
lukee tämän ja muuntaa JSONiksi, mutta consumer omistaa sisällön.
## Vaikutukset
- Provider voi muuttaa `scripts/` ja `config-provider.yml` sisältöä
ilman consumerin hyväksyntää (versiovaihdon yhteydessä)
- Consumer voi muuttaa `example-*.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)
- Sekä provider että consumer jakavat `.gitea/workflows/` — tämä on
Gitea Actionsin tekninen rajoite, ei suunnittelupäätös