ffc0734b65
CI Main / Check existing artifact (push) Successful in 12s
unit-tests Link to Bats reports
CI Main / Bats tests (push) Successful in 1m44s
acc-tests Link to Cucumber reports
CI Main / Cucumber tests (push) Successful in 1m31s
CI Main / Build & Push Docker (push) Successful in 54s
CI Main / Report Summary (push) Successful in 13s
CI Main / Move provider version tag (push) Successful in 13s
CI Main / Load example-gitea-env.conf to pipeline env (push) Successful in 19s
ci-docker-build-push Docker build & push 0.2.2 OK
Co-authored-by: moilanik <niko.moilanen@tietoevry.com> Reviewed-on: #13
44 lines
1.6 KiB
Markdown
44 lines
1.6 KiB
Markdown
# 10. Pipeline-reititin — ei komentoja
|
|
|
|
## Päätös
|
|
|
|
CI-pipelinetiedostot (`ci-main.yml`, `ci-feature.yml`) ovat puhtaita
|
|
**reitittimiä**. Ne eivät saa sisältää `run:`-komentoja, inline-skriptejä
|
|
tai varsinaista build-/test-logiikkaa. Niiden ainoa sallittu sisältö on:
|
|
|
|
- `uses:` — viittaus reusable workflow'hun
|
|
- `needs:` — riippuvuus toisen jobin valmistumiseen
|
|
- `if:` — ehdollinen suoritus
|
|
- `secrets: inherit` — salaisuuksien välitys
|
|
|
|
## Mikä ei kuulu reitittimeen
|
|
|
|
- `run:`-komennot
|
|
- Inline-skriptit (shell, Python, tms.)
|
|
- `actions/checkout` (paitsi providerin sisäinen infrastruktuuri)
|
|
- Build-työkalut, testikomennot, Docker-komennot
|
|
- Raporttien generointi
|
|
|
|
## Missä logiikka on
|
|
|
|
| Kerros | Tiedosto | Sisältö |
|
|
|---|---|---|
|
|
| Reititin | `ci-main.yml`, `ci-feature.yml` | Vain `uses:`-kutsut |
|
|
| Workflow_call | `ci-unit-tests.yml`, `ci-acc-tests.yml`, … | Varsinainen testi-/build-logiikka |
|
|
| Provider | `config-provider.yml`, `check-version.yml`, … | Jaettu infrastruktuuri |
|
|
| Skriptit | `scripts/` | Apufunktiot (status, publish, validointi) |
|
|
|
|
## Perustelu
|
|
|
|
Reitittimen ja toteutuksen erottelu:
|
|
|
|
- Reititin kertoo **mitä** ajetaan ja **missä järjestyksessä** — luettavissa
|
|
yhdellä silmäyksellä ilman teknistä taustaa
|
|
- Toteutus (workflow_call) kertoo **miten** — tekninen henkilö voi keskittyä
|
|
yhteen tiedostoon kerrallaan
|
|
- Providerin reusable workflow't eivät koskaan sisällä inline-logiikkaa —
|
|
skriptit ovat omissa tiedostoissaan
|
|
|
|
Tämä on sama periaate kuin web-sovelluksissa: reititin ei sisällä
|
|
business-logiikkaa, vain HTTP-verbit ja polut.
|