Files
gitea-ci-library/docs/adr/0010-pipeline-router-no-commands.md
T
niko 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
tägitys käyttöön consumer viittauksessa provider tiedostoihin (#13)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com>
Reviewed-on: #13
2026-06-16 06:07:40 +03:00

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'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.