pipeline siivous ja testikattavuuden nosto (#9)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com> Reviewed-on: #9
This commit is contained in:
@@ -10,14 +10,14 @@ Consumer kutsuu provideria `uses:`-viittauksella. Ei discoveryä — polku kovak
|
||||
### Polun muodostus
|
||||
|
||||
```
|
||||
{owner}/{repo}/.gitea/workflows/ci-engine.yml@{ref}
|
||||
{owner}/{repo}/.gitea/workflows/build-feature.yml@{ref}
|
||||
```
|
||||
|
||||
| Osa | Mistä | Esimerkki (homelab) |
|
||||
|-----|-------|---------------------|
|
||||
| `owner` | Repopolun ensimmäinen osa — **käyttäjänimi tai org** | `niko` |
|
||||
| `repo` | Repon nimi | `gitea-ci-library` |
|
||||
| tiedosto | Providerin workflow | `.gitea/workflows/ci-engine.yml` |
|
||||
| tiedosto | Providerin workflow | `.gitea/workflows/build-feature.yml` |
|
||||
| `@ref` | Tag tai branch provider-repossa | `@v1` (tuotanto) |
|
||||
|
||||
**Owner ei ole org-pakotettu.** Homelabissa ei välttämättä ole organisaatiotasoa — silloin owner on
|
||||
@@ -36,7 +36,7 @@ Consumerin `ci.yml`:
|
||||
```yaml
|
||||
jobs:
|
||||
call-engine:
|
||||
uses: niko/gitea-ci-library/.gitea/workflows/ci-engine.yml@v1
|
||||
uses: niko/gitea-ci-library/.gitea/workflows/build-feature.yml@v1
|
||||
secrets: inherit
|
||||
```
|
||||
|
||||
@@ -56,7 +56,7 @@ niko/gitea-ci-library ←→ niko/gitea-ci-library (mirror tai push-mirror)
|
||||
niko/gitea-ci-library/... niko/gitea-ci-library/...
|
||||
```
|
||||
|
||||
Mirror pitää `ci-engine.yml`:n ja tagit (`v1`) saatavilla kulloisellakin palvelimella. Tämä korvaa
|
||||
Mirror pitää `build-feature.yml`:n ja tagit (`v1`) saatavilla kulloisellakin palvelimella. Tämä korvaa
|
||||
provider-repon checkout-hackit workflowissa — binding hoituu Gitean natiivilla `uses:`-mekanismilla.
|
||||
|
||||
Periaatteet: [tmp/data-flow-design.md](tmp/data-flow-design.md)
|
||||
@@ -180,6 +180,52 @@ Tarkista ennen ensimmäistä ajoa: [Provider-binding](#provider-binding--miten-c
|
||||
|
||||
Lisätietoa runnerin toiminnasta, konteista ja DinD:stä: [docs/runner.md](docs/runner.md)
|
||||
|
||||
## Vaaditut secretit ja muuttujat
|
||||
|
||||
Consumer-repossa on oltava seuraavat asetukset:
|
||||
|
||||
### Repo Actions Secrets (`{repo} → Settings → Actions → Secrets`)
|
||||
|
||||
| Secret | Kuvaus |
|
||||
|--------|--------|
|
||||
| `GIT_PAGES_PUBLISH_TOKEN` | Git-pages-palvelimen BasicAuth-token. Nimi on lukittu — tämä tarkka nimi vaaditaan. |
|
||||
|
||||
`GITEA_TOKEN` on Gitean sisäinen secret (`secrets.GITEA_TOKEN`), joka on automauttisesti saatavilla — sitä ei tarvitse erikseen luoda.
|
||||
|
||||
### Config-tiedosto (`.gitea/workflows/gitea-env.conf`)
|
||||
|
||||
Tiedoston **nimi ja polku on lukittu**: `.gitea/workflows/gitea-env.conf` consumer-repon juuressa.
|
||||
Tämän tiedoston perusteella `config-provider.yml` tuottaa `env_json`-outputin, joka välitetään
|
||||
workflowille.
|
||||
|
||||
Tiedosto on `key=value`-muotoinen (kuten `.env`). Kommentit ja tyhjät rivit sallittuja.
|
||||
|
||||
**Vaaditut avaimet:**
|
||||
|
||||
| Avain | Kuvaus |
|
||||
|-------|--------|
|
||||
| `GITEA_API_URL` | Gitea-palvelimen base URL (esim. `https://gitea.app.example.com`) |
|
||||
| `GIT_PAGES_URL` | Git-pages-palvelimen URL ilman trailing slash (esim. `https://ci-reports.example.com`) |
|
||||
|
||||
**Validointisäännöt:**
|
||||
- Arvot eivät saa olla tyhjiä
|
||||
- Jos avaimen nimessä on `URL`, arvon on alettava `http://` tai `https://`
|
||||
- Tiedoston on oltava olemassa (muuten job keskeytyy)
|
||||
|
||||
Esimerkki:
|
||||
```
|
||||
GITEA_API_URL=https://gitea.app.example.com
|
||||
GIT_PAGES_URL=https://ci-reports.example.com
|
||||
```
|
||||
|
||||
### Validaatio
|
||||
|
||||
Jokaisen jobin alussa `ci-validate.sh` tarkistaa:
|
||||
- `.gitea/workflows/gitea-env.conf` on olemassa ja sen arvot ovat validit
|
||||
- `GITEA_TOKEN` ja `GIT_PAGES_PUBLISH_TOKEN` on asetettu
|
||||
|
||||
Jos validointi epäonnistuu, job keskeytyy exit-koodilla 1 ja Gitean commit-status näyttää epäonnistumisen linkkinä lokiin.
|
||||
|
||||
### Muuta
|
||||
|
||||
| Muuttuja | Kuvaus |
|
||||
|
||||
Reference in New Issue
Block a user