2.3 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/feature-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ä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 tarjoamiaci.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/feature-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
.gitea/workflows/ci.yml,.gitea/workflows/build-feature.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