Files
gitea-ci-library/docs/adr/0006-directory-ownership.md
T
moilanik ba9717d02c
CI Main / Load example-gitea-env.conf to pipeline env (push) Successful in 17s
CI Main / Check existing artifact (push) Successful in 11s
CI Main / Bats tests (push) Successful in 1m40s
unit-tests Link to Bats reports
acc-tests Link to Cucumber reports
CI Main / Cucumber tests (push) Failing after 41s
CI Main / Build & Push Docker (push) Has been skipped
CI Main / Report Summary (push) Successful in 6s
viimeinen testi
2026-06-15 17:10:21 +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 example-pipeline
.gitea/workflows/example-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, check-version.yml, docker-build-push.yml) ovat samassa .gitea/workflows/-kansiossa consumerin esimerkkipipeline-tiedostojen (example-*) kanssa.

Erottelu on nimessä ja dokumentaatiossa, ei kansiorakenteessa:

  • config-provider.yml, check-version.yml, docker-build-push.yml — providerin tarjoamia
  • example-feature.yml, example-main.yml, example-*.yml — consumer-esimerkkejä

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/example-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 example-*.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