pipeline siivous ja testikattavuuden nosto (#9)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com> Reviewed-on: #9
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
# 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 pipeline |
|
||||
| `.gitea/workflows/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`,
|
||||
`build-feature.yml`) ovat samassa `.gitea/workflows/`-kansiossa consumerin
|
||||
pipeline-tiedostojen (`ci.yml`) kanssa.
|
||||
|
||||
Erottelu on nimessä ja dokumentaatiossa, ei kansiorakenteessa:
|
||||
- `config-provider.yml`, `build-feature.yml` — providerin tarjoamia
|
||||
- `ci.yml` — consumerin omistamia
|
||||
|
||||
## 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/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 `.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)
|
||||
- Sekä provider että consumer jakavat `.gitea/workflows/` — tämä on
|
||||
Gitea Actionsin tekninen rajoite, ei suunnittelupäätös
|
||||
Reference in New Issue
Block a user