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 tarjoamiaexample-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/jaconfig-provider.ymlsisältöä ilman consumerin hyväksyntää (versiovaihdon yhteydessä) - Consumer voi muuttaa
example-*.ymlja.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