Files
gitea-ci-library/docs/adr/0010-pipeline-router-no-commands.md
T
moilanik db1342685c
CI Feature / Load example-gitea-env.conf to pipeline env (push) Successful in 24s
unit-tests Link to Bats reports
CI Feature / Bats tests (push) Successful in 1m46s
acc-tests Link to Cucumber reports
CI Feature / Cucumber tests (push) Successful in 1m8s
CI Feature / Report Summary (push) Successful in 5s
tägitys käyttöön consumer viittauksessa provider tiedostoihin
2026-06-16 06:01:29 +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.