Files
gitea-ci-library/docs/adr/0006-directory-ownership.md
T
moilanik 7b99392dd7
CI / load-config (push) Successful in 11s
ci-cucumber Cucumber tests passed
ci-bats Bats tests
ci-build Build complete
CI / feature (push) Successful in 2m15s
CI / main (push) Has been skipped
katetaan puuttuva testit
2026-06-13 19:39:01 +03:00

2.6 KiB

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, ci-engine.yml) ovat samassa .gitea/workflows/-kansiossa consumerin pipeline-tiedostojen (ci.yml, build-feature.yml) kanssa.

Erottelu on nimessä ja dokumentaatiossa, ei kansiorakenteessa:

  • config-provider.yml, ci-engine.yml — providerin tarjoamia
  • ci.yml, build-feature.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