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
1.6 KiB
1.6 KiB
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'hunneeds:— riippuvuus toisen jobin valmistumiseenif:— ehdollinen suoritussecrets: 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.