git-pages siivottu pois, ja secret nimi nyt giteassa REPORTS_PUBLISH_TOKEN
CI Feature / Load example-gitea-env.conf to pipeline env (push) Failing after 16s
CI Feature / Bats tests (push) Has been skipped
CI Feature / Cucumber tests (push) Has been skipped
CI Feature / Report Summary (push) Successful in 5s

This commit is contained in:
moilanik
2026-06-28 08:45:35 +03:00
parent c7ee12bafa
commit baa5e8dac6
35 changed files with 163 additions and 163 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ on:
secrets: secrets:
GITEA_TOKEN: GITEA_TOKEN:
required: true required: true
GIT_PAGES_PUBLISH_TOKEN: REPORTS_PUBLISH_TOKEN:
required: true required: true
outputs: outputs:
env_json: env_json:
@@ -19,7 +19,7 @@ on:
env: env:
CI_CONF_FILE: ${{ inputs.config_path }} CI_CONF_FILE: ${{ inputs.config_path }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GIT_PAGES_PUBLISH_TOKEN: ${{ secrets.GIT_PAGES_PUBLISH_TOKEN }} REPORTS_PUBLISH_TOKEN: ${{ secrets.REPORTS_PUBLISH_TOKEN }}
jobs: jobs:
parse-config: parse-config:
+2 -2
View File
@@ -12,14 +12,14 @@ on:
secrets: secrets:
GITEA_TOKEN: GITEA_TOKEN:
required: true required: true
GIT_PAGES_PUBLISH_TOKEN: REPORTS_PUBLISH_TOKEN:
required: true required: true
env: env:
GITEA_API_URL: ${{ fromJson(inputs.env_json).GITEA_API_URL }} GITEA_API_URL: ${{ fromJson(inputs.env_json).GITEA_API_URL }}
GIT_PAGES_URL: ${{ fromJson(inputs.env_json).GIT_PAGES_URL }} GIT_PAGES_URL: ${{ fromJson(inputs.env_json).GIT_PAGES_URL }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GIT_PAGES_PUBLISH_TOKEN: ${{ secrets.GIT_PAGES_PUBLISH_TOKEN }} REPORTS_PUBLISH_TOKEN: ${{ secrets.REPORTS_PUBLISH_TOKEN }}
jobs: jobs:
bats: bats:
+2 -2
View File
@@ -12,14 +12,14 @@ on:
secrets: secrets:
GITEA_TOKEN: GITEA_TOKEN:
required: true required: true
GIT_PAGES_PUBLISH_TOKEN: REPORTS_PUBLISH_TOKEN:
required: true required: true
env: env:
GITEA_API_URL: ${{ fromJson(inputs.env_json).GITEA_API_URL }} GITEA_API_URL: ${{ fromJson(inputs.env_json).GITEA_API_URL }}
GIT_PAGES_URL: ${{ fromJson(inputs.env_json).GIT_PAGES_URL }} GIT_PAGES_URL: ${{ fromJson(inputs.env_json).GIT_PAGES_URL }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GIT_PAGES_PUBLISH_TOKEN: ${{ secrets.GIT_PAGES_PUBLISH_TOKEN }} REPORTS_PUBLISH_TOKEN: ${{ secrets.REPORTS_PUBLISH_TOKEN }}
jobs: jobs:
cucumber: cucumber:
+2 -2
View File
@@ -264,7 +264,7 @@ Consumer-repossa on oltava seuraavat asetukset:
| Secret | Kuvaus | | Secret | Kuvaus |
|--------|--------| |--------|--------|
| `GIT_PAGES_PUBLISH_TOKEN` | Git-pages-palvelimen BasicAuth-token. Nimi on lukittu — tämä tarkka nimi vaaditaan. | | `REPORTS_PUBLISH_TOKEN` | Git-pages-palvelimen BasicAuth-token. Nimi on lukittu — tämä tarkka nimi vaaditaan. |
`GITEA_TOKEN` on Gitean automaattisesti jokaiselle workflow-runille generoima token (`secrets.GITEA_TOKEN`). Se on scopeutettu **siihen repoon**, jossa workflow ajaa — ei toimi toiseen repoon dispatchaukseen eikä toisen repon commit-statusin asettamiseen. Ei tarvitse erikseen luoda. `GITEA_TOKEN` on Gitean automaattisesti jokaiselle workflow-runille generoima token (`secrets.GITEA_TOKEN`). Se on scopeutettu **siihen repoon**, jossa workflow ajaa — ei toimi toiseen repoon dispatchaukseen eikä toisen repon commit-statusin asettamiseen. Ei tarvitse erikseen luoda.
@@ -300,7 +300,7 @@ GIT_PAGES_URL=https://ci-reports.example.com
Jokaisen jobin alussa `ci-validate.sh` tarkistaa: Jokaisen jobin alussa `ci-validate.sh` tarkistaa:
- `.gitea/workflows/gitea-env.conf` on olemassa ja sen arvot ovat validit - `.gitea/workflows/gitea-env.conf` on olemassa ja sen arvot ovat validit
- `GITEA_TOKEN` ja `GIT_PAGES_PUBLISH_TOKEN` on asetettu - `GITEA_TOKEN` ja `REPORTS_PUBLISH_TOKEN` on asetettu
Jos validointi epäonnistuu, job keskeytyy exit-koodilla 1 ja Gitean commit-status näyttää epäonnistumisen linkkinä lokiin. Jos validointi epäonnistuu, job keskeytyy exit-koodilla 1 ja Gitean commit-status näyttää epäonnistumisen linkkinä lokiin.
+1 -1
View File
@@ -26,7 +26,7 @@ Consumer:
- Omistaa pipeline-logiikan (mitä testejä ajetaan, missä järjestyksessä) - Omistaa pipeline-logiikan (mitä testejä ajetaan, missä järjestyksessä)
- Luo raportit omiin polkuihinsa (`reports/{sha8}/{step}/`) - Luo raportit omiin polkuihinsa (`reports/{sha8}/{step}/`)
- Luo `.meta`-tiedostot per step - Luo `.meta`-tiedostot per step
- Määrittelee Gitea-secretit (`GIT_PAGES_PUBLISH_TOKEN`, `GITEA_TOKEN`) - Määrittelee Gitea-secretit (`REPORTS_PUBLISH_TOKEN`, `GITEA_TOKEN`)
### Provider → Consumer (mitä provider tarjoaa) ### Provider → Consumer (mitä provider tarjoaa)
+1 -1
View File
@@ -96,7 +96,7 @@ Avainkomponentit:
- **workflow `env:`** — ainoa tapa jakaa arvot kaikkiin jobeihin. - **workflow `env:`** — ainoa tapa jakaa arvot kaikkiin jobeihin.
`fromJson(inputs.env_json).KEY` purkaa yksittäiset arvot ilman toistoa. `fromJson(inputs.env_json).KEY` purkaa yksittäiset arvot ilman toistoa.
- **Per-job `env:`** — sisältää vain secretit (`GITEA_TOKEN`, - **Per-job `env:`** — sisältää vain secretit (`GITEA_TOKEN`,
`GIT_PAGES_PUBLISH_TOKEN`), ei config-arvoja. `REPORTS_PUBLISH_TOKEN`), ei config-arvoja.
## 5. Pipeline Provides All Dependencies ## 5. Pipeline Provides All Dependencies
+2 -2
View File
@@ -69,7 +69,7 @@ org-tason token.
| Secret | Pakollinen | Käyttäjä | | Secret | Pakollinen | Käyttäjä |
|---|---|---| |---|---|---|
| `GITEA_TOKEN` | Kyllä | `report-status.sh`, `check-version.yml`, `docker-build-push.yml`, `gitops-update.sh` (GitOps-repossa) | | `GITEA_TOKEN` | Kyllä | `report-status.sh`, `check-version.yml`, `docker-build-push.yml`, `gitops-update.sh` (GitOps-repossa) |
| `GIT_PAGES_PUBLISH_TOKEN` | Kyllä | `publish-git-pages.sh`, `config-provider.yml` (validointi) | | `REPORTS_PUBLISH_TOKEN` | Kyllä | `publish-git-pages.sh`, `config-provider.yml` (validointi) |
| `DOCKER_USERNAME` | Ei | `docker-build-push.yml` (oletus: `github.actor`, ei pakollinen kaikissa registryissä) | | `DOCKER_USERNAME` | Ei | `docker-build-push.yml` (oletus: `github.actor`, ei pakollinen kaikissa registryissä) |
| `DOCKER_PASSWORD` | Kyllä | `docker-build-push.yml` | | `DOCKER_PASSWORD` | Kyllä | `docker-build-push.yml` |
@@ -88,7 +88,7 @@ JSON-muotoisen `env_json`:n.
- `.conf`-tiedosto on olemassa - `.conf`-tiedosto on olemassa
- Jokaisella `KEY=VALUE`-rivillä on arvo (ei tyhjää) - Jokaisella `KEY=VALUE`-rivillä on arvo (ei tyhjää)
- URL-tyyppiset avaimet alkavat `http://` tai `https://` - URL-tyyppiset avaimet alkavat `http://` tai `https://`
- Pakolliset secretit (`GITEA_TOKEN`, `GIT_PAGES_PUBLISH_TOKEN`) on asetettu - Pakolliset secretit (`GITEA_TOKEN`, `REPORTS_PUBLISH_TOKEN`) on asetettu
Kutsu: Kutsu:
```yaml ```yaml
+2 -2
View File
@@ -268,7 +268,7 @@ set -eu
SUITE_PATH="${1:-}" SUITE_PATH="${1:-}"
[ -n "$SUITE_PATH" ] || { echo "ERROR: suite_path required" >&2; exit 1; } [ -n "$SUITE_PATH" ] || { echo "ERROR: suite_path required" >&2; exit 1; }
[ -n "${GIT_PAGES_URL:-}" ] || { echo "ERROR: GIT_PAGES_URL is not set" >&2; exit 1; } [ -n "${GIT_PAGES_URL:-}" ] || { echo "ERROR: GIT_PAGES_URL is not set" >&2; exit 1; }
[ -n "${GIT_PAGES_PUBLISH_TOKEN:-}" ] || { echo "ERROR: GIT_PAGES_PUBLISH_TOKEN is not set" >&2; exit 1; } [ -n "${REPORTS_PUBLISH_TOKEN:-}" ] || { echo "ERROR: REPORTS_PUBLISH_TOKEN is not set" >&2; exit 1; }
[ -n "${GITHUB_REPOSITORY:-}" ] || { echo "ERROR: GITHUB_REPOSITORY is not set" >&2; exit 1; } [ -n "${GITHUB_REPOSITORY:-}" ] || { echo "ERROR: GITHUB_REPOSITORY is not set" >&2; exit 1; }
[ -n "${GITHUB_SHA:-}" ] || { echo "ERROR: GITHUB_SHA is not set" >&2; exit 1; } [ -n "${GITHUB_SHA:-}" ] || { echo "ERROR: GITHUB_SHA is not set" >&2; exit 1; }
[ -n "${GITHUB_REF_NAME:-}" ] || { echo "ERROR: GITHUB_REF_NAME is not set" >&2; exit 1; } [ -n "${GITHUB_REF_NAME:-}" ] || { echo "ERROR: GITHUB_REF_NAME is not set" >&2; exit 1; }
@@ -312,7 +312,7 @@ tar czf "$TAR" -C "$WORK/$SUITE" .
# PUT upload-sidecariin # PUT upload-sidecariin
PUBLISH_URL="${GIT_PAGES_URL}/${OWNER}/${REPO}/${BRANCH}/${SHA8}/${SUITE}/" PUBLISH_URL="${GIT_PAGES_URL}/${OWNER}/${REPO}/${BRANCH}/${SHA8}/${SUITE}/"
HTTP_CODE=$(curl -sS -X PUT "$PUBLISH_URL" \ HTTP_CODE=$(curl -sS -X PUT "$PUBLISH_URL" \
-u "${PAGES_USER}:${GIT_PAGES_PUBLISH_TOKEN}" \ -u "${PAGES_USER}:${REPORTS_PUBLISH_TOKEN}" \
-H "Content-Type: application/tar+gz" \ -H "Content-Type: application/tar+gz" \
--data-binary @"$TAR" \ --data-binary @"$TAR" \
-o /tmp/git-pages-publish-response.txt \ -o /tmp/git-pages-publish-response.txt \
+3 -3
View File
@@ -79,7 +79,7 @@ publish-git-pages.sh <suite>
|---|---| |---|---|
| `GITEA_API_URL` | `env_json` → workflow `env:` | | `GITEA_API_URL` | `env_json` → workflow `env:` |
| `GIT_PAGES_URL` | `env_json` → workflow `env:` | | `GIT_PAGES_URL` | `env_json` → workflow `env:` |
| `GIT_PAGES_PUBLISH_TOKEN` | Gitea secret → `env:` | | `REPORTS_PUBLISH_TOKEN` | Gitea secret → `env:` |
| `GITHUB_REPOSITORY` | Automaattinen | | `GITHUB_REPOSITORY` | Automaattinen |
| `GITHUB_SHA` | Automaattinen | | `GITHUB_SHA` | Automaattinen |
@@ -104,7 +104,7 @@ Lukee tiedoston polun `CI_CONF_FILE`-env-muuttujasta (oletus: `.gitea/workflows/
- Jokaisella `KEY=VALUE`-rivillä on arvo (ei tyhjää) - Jokaisella `KEY=VALUE`-rivillä on arvo (ei tyhjää)
- URL-tyyppiset avaimet alkavat `http://` tai `https://` - URL-tyyppiset avaimet alkavat `http://` tai `https://`
- `GITEA_TOKEN` on asetettu - `GITEA_TOKEN` on asetettu
- `GIT_PAGES_PUBLISH_TOKEN` on asetettu - `REPORTS_PUBLISH_TOKEN` on asetettu
--- ---
@@ -155,7 +155,7 @@ dispatch-workflow.sh <target_repo> <workflow_file> <ref> <inputs_json> <gitea_ap
| `GITEA_API_URL` | `env_json` | `report-status.sh`, `ci-validate.sh` | | `GITEA_API_URL` | `env_json` | `report-status.sh`, `ci-validate.sh` |
| `GIT_PAGES_URL` | `env_json` | `publish-git-pages.sh`, `report-status.sh` | | `GIT_PAGES_URL` | `env_json` | `publish-git-pages.sh`, `report-status.sh` |
| `GITEA_TOKEN` | Gitea secret | `report-status.sh`, `check-version.yml`, `docker-build-push.yml` | | `GITEA_TOKEN` | Gitea secret | `report-status.sh`, `check-version.yml`, `docker-build-push.yml` |
| `GIT_PAGES_PUBLISH_TOKEN` | Gitea secret | `publish-git-pages.sh` | | `REPORTS_PUBLISH_TOKEN` | Gitea secret | `publish-git-pages.sh` |
| `GITHUB_REPOSITORY` | Automaattinen | Kaikki skriptit | | `GITHUB_REPOSITORY` | Automaattinen | Kaikki skriptit |
| `GITHUB_SHA` | Automaattinen | Kaikki skriptit | | `GITHUB_SHA` | Automaattinen | Kaikki skriptit |
| `GITHUB_RUN_ID` | Automaattinen | `report-status.sh` | | `GITHUB_RUN_ID` | Automaattinen | `report-status.sh` |
+1 -1
View File
@@ -32,7 +32,7 @@ Kaikki workflowt:
| Secret | Pakollinen | Kuvaus | | Secret | Pakollinen | Kuvaus |
|--------|------------|--------| |--------|------------|--------|
| `GITEA_TOKEN` | Kyllä | Validointia varten | | `GITEA_TOKEN` | Kyllä | Validointia varten |
| `GIT_PAGES_PUBLISH_TOKEN` | Kyllä | Validointia varten | | `REPORTS_PUBLISH_TOKEN` | Kyllä | Validointia varten |
**Outputs:** **Outputs:**
+3 -3
View File
@@ -64,7 +64,7 @@ open "https://gitea.app.keskikuja.site/${REPO_OWNER}/${REPO_NAME}/settings/actio
# Linux: xdg-open "https://gitea.app.keskikuja.site/${REPO_OWNER}/${REPO_NAME}/settings/actions/secrets" # Linux: xdg-open "https://gitea.app.keskikuja.site/${REPO_OWNER}/${REPO_NAME}/settings/actions/secrets"
``` ```
**Gitea UI:ssa:** New Secret → Name: `GIT_PAGES_PUBLISH_TOKEN` → Value: **liitä leikepöydältä** → Save **Gitea UI:ssa:** New Secret → Name: `REPORTS_PUBLISH_TOKEN` → Value: **liitä leikepöydältä** → Save
> 💡 **Monelle repoille:** Toista vaiheet 34, tai katso [automatisointi](docs/secrets.md#automatisointi-useamman-repon-salaisuuden-lis%C3%A4%C3%A4miseen). > 💡 **Monelle repoille:** Toista vaiheet 34, tai katso [automatisointi](docs/secrets.md#automatisointi-useamman-repon-salaisuuden-lis%C3%A4%C3%A4miseen).
@@ -132,7 +132,7 @@ Julkaisu DNS-osoitteeseen BasicAuthilla:
```bash ```bash
# Esimerkki: julkaise raportti # Esimerkki: julkaise raportti
curl -X PUT \ curl -X PUT \
-u publish:$GIT_PAGES_PUBLISH_TOKEN \ -u publish:$REPORTS_PUBLISH_TOKEN \
-H "Content-Type: application/tar+gz" \ -H "Content-Type: application/tar+gz" \
--data-binary @report.tar.gz \ --data-binary @report.tar.gz \
https://ci-reports.helm-dev.keskikuja.site/{owner}/{repo}/{branch}/{sha8}/{suite}/ https://ci-reports.helm-dev.keskikuja.site/{owner}/{repo}/{branch}/{sha8}/{suite}/
@@ -142,7 +142,7 @@ curl -X PUT \
| Missä | Arvo | | Missä | Arvo |
|-------|------| |-------|------|
| Gitea Actions secret | `GIT_PAGES_PUBLISH_TOKEN` (sama kuin K8s `gitea-reports-publish-token` `token`-avain) | | Gitea Actions secret | `REPORTS_PUBLISH_TOKEN` (sama kuin K8s `gitea-reports-publish-token` `token`-avain) |
| Scriptissä | `bash scripts/publish-gitea-reports.sh <suite>` | | Scriptissä | `bash scripts/publish-gitea-reports.sh <suite>` |
**K8s secretit (Traefik-yhteensopivuus):** **K8s secretit (Traefik-yhteensopivuus):**
+2 -2
View File
@@ -1,6 +1,6 @@
# Architecture — Nginx + upload-sidecar # Architecture — Nginx + upload-sidecar
> git-pages on korvattu. Uusi arkkitehtuuri: Nginx palvelee staattisia tiedostoja PV:ltä, upload-sidecar (busybox httpd + CGI) ottaa vastaan tar.gz-PUTit. > gitea-reports on korvattu. Uusi arkkitehtuuri: Nginx palvelee staattisia tiedostoja PV:ltä, upload-sidecar (busybox httpd + CGI) ottaa vastaan tar.gz-PUTit.
## Yleiskuvaus ## Yleiskuvaus
@@ -16,7 +16,7 @@ Ei Host-header-kikkaa, ei slugia, ei rewritea.
| **PVC** | Raporttisisältö suoraan FS-muodossa | | **PVC** | Raporttisisältö suoraan FS-muodossa |
| **Service** | ClusterIP :8080 (read), :8081 (write) | | **Service** | ClusterIP :8080 (read), :8081 (write) |
| **Traefik IngressRoute** | PATCH/PUT → upload:8081 (BasicAuth), GET/HEAD → nginx:8080 | | **Traefik IngressRoute** | PATCH/PUT → upload:8081 (BasicAuth), GET/HEAD → nginx:8080 |
| **Traefik Middleware** | `git-pages-publish-auth` (BasicAuth), HTTPS-redirect | | **Traefik Middleware** | `gitea-reports-publish-auth` (BasicAuth), HTTPS-redirect |
| **cert-manager Certificate** | TLS | | **cert-manager Certificate** | TLS |
## URL ja sisältö ## URL ja sisältö
+11 -11
View File
@@ -1,8 +1,8 @@
# Design Rationale — git-pages # Design Rationale — gitea-reports
> Miksi git-pages on rakennettu näin. Arvot, periaatteet ja reunaehdot. > Miksi gitea-reports on rakennettu näin. Arvot, periaatteet ja reunaehdot.
> >
> Tämä dokumentti on **normatiivinen** `git-pages/`-alikansiolle. Se ei kuvaa juuren > Tämä dokumentti on **normatiivinen** `gitea-reports/`-alikansiolle. Se ei kuvaa juuren
> `gitea-ci-library`-kirjastoa eikä sen workfloweja. > `gitea-ci-library`-kirjastoa eikä sen workfloweja.
> >
> Liittyvät dokumentit: [architecture.md](architecture.md), [tech-stack.md](tech-stack.md), [secrets.md](secrets.md). > Liittyvät dokumentit: [architecture.md](architecture.md), [tech-stack.md](tech-stack.md), [secrets.md](secrets.md).
@@ -18,7 +18,7 @@ elävänä dokumentaationa git commitin tilasta.
Gitea ei tarjoa web-selaimella selattavaa arkistoa näille HTML-raporteille. Gitea ei tarjoa web-selaimella selattavaa arkistoa näille HTML-raporteille.
git-pages ratkaisee tämän ongelman. gitea-reports ratkaisee tämän ongelman.
| Vaihtoehto | Miksi ei riitä | | Vaihtoehto | Miksi ei riitä |
|---|---| |---|---|
@@ -73,7 +73,7 @@ Julkaisija (CI tai muu asiakas) lähettää tar-arkiston PATCH/PUT:lla. Lukija h
HTML:n GET:llä. Ei Gitea-git-integraatiota eikä `pages`-branchia. HTML:n GET:llä. Ei Gitea-git-integraatiota eikä `pages`-branchia.
**Codebergin security-malli ei sovellu tähän käyttöön** — forge-auth (Gitea PAT + **Codebergin security-malli ei sovellu tähän käyttöön** — forge-auth (Gitea PAT +
`write:repository`), DNS TXT -haaste ja muut git-pagesin sisäänrakennetut valtuutus- `write:repository`), DNS TXT -haaste ja muut gitea-reportsin sisäänrakennetut valtuutus-
mekanismit on ohitettu kokonaan (`PAGES_INSECURE=1`). Niiden sijaan Kubernetes-kerros mekanismit on ohitettu kokonaan (`PAGES_INSECURE=1`). Niiden sijaan Kubernetes-kerros
hoitaa rajauksen: Traefik BasicAuth julkaisuun, cert-manager TLS:ään, erillinen hoitaa rajauksen: Traefik BasicAuth julkaisuun, cert-manager TLS:ään, erillinen
publish-token ([secrets.md](secrets.md)). Sovellus palvelee sisältöä; klusteri päättää publish-token ([secrets.md](secrets.md)). Sovellus palvelee sisältöä; klusteri päättää
@@ -94,13 +94,13 @@ Yksi TLS-sertifikaatti, yksi IngressRoute, yksi PVC.
### 2. Sovelluksen sisäinen security kytketty pois, Traefik hoitaa rajauksen ### 2. Sovelluksen sisäinen security kytketty pois, Traefik hoitaa rajauksen
`git-pages`-sovelluksen koko sisäinen security-mekanismi on kytketty pois päältä (`PAGES_INSECURE=1`). Kirjoitusoikeuden validointi tapahtuu yksinomaan Kubernetes-reunalla Traefik BasicAuth -middlewaren avulla. Sovellus palvelee sisältöä sokeana; klusteri päättää, kuka saa kirjoittaa. `gitea-reports`-sovelluksen koko sisäinen security-mekanismi on kytketty pois päältä (`PAGES_INSECURE=1`). Kirjoitusoikeuden validointi tapahtuu yksinomaan Kubernetes-reunalla Traefik BasicAuth -middlewaren avulla. Sovellus palvelee sisältöä sokeana; klusteri päättää, kuka saa kirjoittaa.
### 3. Julkaisu ja luku erotettu ### 3. Julkaisu ja luku erotettu
Julkaisu (PATCH/PUT) vaatii Traefik BasicAuthin. Luku (GET/HEAD) on erillinen reitti — katso [Luku-auth](#luku-auth) alla. Julkaisu (PATCH/PUT) vaatii Traefik BasicAuthin. Luku (GET/HEAD) on erillinen reitti — katso [Luku-auth](#luku-auth) alla.
**Miksi:** Koska sovellus ei validoi julkaisuoikeuksia, kirjoitusoikeus on eksplisiittisesti eriytetty Traefik Middlewaressä (`git-pages-publish-auth`). **Miksi:** Koska sovellus ei validoi julkaisuoikeuksia, kirjoitusoikeus on eksplisiittisesti eriytetty Traefik Middlewaressä (`gitea-reports-publish-auth`).
### 4. Yksi publish-token, kaksi säilöä ### 4. Yksi publish-token, kaksi säilöä
@@ -112,7 +112,7 @@ julkaisuoikeuden tähän palveluun. Yksi arvo, kaksi paikkaa — ks. [secrets.md
### 5. Secretit erillisessä hallinnassa ### 5. Secretit erillisessä hallinnassa
`git-pages-publish-auth` luodaan ennen käyttöönottoa — ei osana sovelluksen konfiguraatiotiedostoja. `gitea-reports-publish-auth` luodaan ennen käyttöönottoa — ei osana sovelluksen konfiguraatiotiedostoja.
**Miksi:** Salaisuudet eivät kulje versionoiduissa arvoissa. Rotaatio ja SealedSecrets **Miksi:** Salaisuudet eivät kulje versionoiduissa arvoissa. Rotaatio ja SealedSecrets
pysyvät operaattorin hallussa. Ks. [secrets.md](secrets.md). pysyvät operaattorin hallussa. Ks. [secrets.md](secrets.md).
@@ -159,7 +159,7 @@ branchille säännöt tulevat `retention.rules` (`branches.default` +
Ei PVC-skaalausta — sidecar lukee manifestin HTTP:lla ja poistaa whiteout Ei PVC-skaalausta — sidecar lukee manifestin HTTP:lla ja poistaa whiteout
PATCHilla. Ei K8s API -oikeuksia. PATCHilla. Ei K8s API -oikeuksia.
Secret: `git-pages-retention-gitea` — Gitea PAT branch-tarkistukseen. Secret: `gitea-reports-retention-gitea` — Gitea PAT branch-tarkistukseen.
Ks. [secrets.md](secrets.md). Ks. [secrets.md](secrets.md).
--- ---
@@ -176,10 +176,10 @@ Ks. [secrets.md](secrets.md).
| Valinta | Miksi | | Valinta | Miksi |
|---------|-------| |---------|-------|
| **Codeberg git-pages** `0.9.1` | Natiivi apex index-site + tar-pohjainen PATCH/PUT -julkaisu | | **Codeberg gitea-reports** `0.9.1` | Natiivi apex index-site + tar-pohjainen PATCH/PUT -julkaisu |
| **Filesystem + PVC** | Yksinkertainen, yksi replica, ei erillistä objektivarastoa | | **Filesystem + PVC** | Yksinkertainen, yksi replica, ei erillistä objektivarastoa |
| **Traefik IngressRoute + Middleware** | Julkaisuauth erillään sovelluksesta; GET/HEAD eri säännöllä | | **Traefik IngressRoute + Middleware** | Julkaisuauth erillään sovelluksesta; GET/HEAD eri säännöllä |
| **cert-manager** | TLS automaattisesti (`git-pages-tls`) | | **cert-manager** | TLS automaattisesti (`gitea-reports-tls`) |
| **Helm v3** | Toistettava asennus; instanssikohtaiset arvot erillisessä values-tiedostossa | | **Helm v3** | Toistettava asennus; instanssikohtaiset arvot erillisessä values-tiedostossa |
--- ---
+37 -37
View File
@@ -1,4 +1,4 @@
# Secrets — git-pages # Secrets — gitea-reports
## Quick Start ## Quick Start
@@ -8,9 +8,9 @@ Järjestelmässä on kaksi loogista salaista arvoa. Publish-token jaetaan kahtee
| Looginen nimi | K8s | Gitea | | Looginen nimi | K8s | Gitea |
|---|---|---| |---|---|---|
| `report_publish_api_token` (htpasswd) | `git-pages-publish-auth` (users) | - | | `report_publish_api_token` (htpasswd) | `gitea-reports-publish-auth` (users) | - |
| `report_publish_api_token` (plaintext) | `git-pages-publish-token` (token) | Actions Secret: `GIT_PAGES_PUBLISH_TOKEN` | | `report_publish_api_token` (plaintext) | `gitea-reports-publish-token` (token) | Actions Secret: `REPORTS_PUBLISH_TOKEN` |
| `reports_retention_read_token` | `git-pages-retention-gitea` (token) | PAT: `CI-REPORTS_READ_FOR_RETENTION` | | `reports_retention_read_token` | `gitea-reports-retention-gitea` (token) | PAT: `CI-REPORTS_READ_FOR_RETENTION` |
**Huomio:** Publish-token jaetaan kahteen secretiin, koska Traefik BasicAuth middleware vaatii single-key secretin sekä on muodossa, missä sitä ei saa takaisin. Jokainen repo mikä raportteja käyttää, tarvitsee selväkielisen arvon, joka on "ylimääräisessä" secretissä. **Huomio:** Publish-token jaetaan kahteen secretiin, koska Traefik BasicAuth middleware vaatii single-key secretin sekä on muodossa, missä sitä ei saa takaisin. Jokainen repo mikä raportteja käyttää, tarvitsee selväkielisen arvon, joka on "ylimääräisessä" secretissä.
@@ -32,9 +32,9 @@ Järjestelmässä on kaksi loogista salaista arvoa. Publish-token jaetaan kahtee
```bash ```bash
GITEA_RETENTION_TOKEN="<from Gitea>" GITEA_RETENTION_TOKEN="<from Gitea>"
GIT_PAGES_PUBLISH_TOKEN="$(openssl rand -base64 24)" REPORTS_PUBLISH_TOKEN="$(openssl rand -base64 24)"
echo "Publish-token generoitu. Tallennetaan K8s-secretiin Vaiheessa 4." echo "Publish-token generoitu. Tallennetaan K8s-secretiin Vaiheessa 4."
echo "$GIT_PAGES_PUBLISH_TOKEN" echo "$REPORTS_PUBLISH_TOKEN"
``` ```
### Vaihe 4: Luo K8s secrets ### Vaihe 4: Luo K8s secrets
@@ -43,17 +43,17 @@ echo "$GIT_PAGES_PUBLISH_TOKEN"
NS=gitea-reports NS=gitea-reports
# 1. Publish-auth: htpasswd (Traefik BasicAuth - vaatii single-key secretin) # 1. Publish-auth: htpasswd (Traefik BasicAuth - vaatii single-key secretin)
kubectl create secret generic git-pages-publish-auth \ kubectl create secret generic gitea-reports-publish-auth \
--from-literal=users="$(docker run --rm httpd:2-alpine htpasswd -nb publish "$GIT_PAGES_PUBLISH_TOKEN")" \ --from-literal=users="$(docker run --rm httpd:2-alpine htpasswd -nb publish "$REPORTS_PUBLISH_TOKEN")" \
-n "$NS" -n "$NS"
# 2. Publish-token: plaintext (luetaan README:stä Giteaan viedessä) # 2. Publish-token: plaintext (luetaan README:stä Giteaan viedessä)
kubectl create secret generic git-pages-publish-token \ kubectl create secret generic gitea-reports-publish-token \
--from-literal=token="$GIT_PAGES_PUBLISH_TOKEN" \ --from-literal=token="$REPORTS_PUBLISH_TOKEN" \
-n "$NS" -n "$NS"
# 3. Retention (käyttää Vaiheessa 2 luotua PAT:ia) # 3. Retention (käyttää Vaiheessa 2 luotua PAT:ia)
kubectl create secret generic git-pages-retention-gitea \ kubectl create secret generic gitea-reports-retention-gitea \
--from-literal=token="$GITEA_RETENTION_TOKEN" \ --from-literal=token="$GITEA_RETENTION_TOKEN" \
-n "$NS" -n "$NS"
@@ -68,20 +68,20 @@ Token näkyy terminaalissa Vaiheen 3 `echo`sta. Jos se on jo kadonnut näkyvist
```bash ```bash
NS=gitea-reports NS=gitea-reports
kubectl get secret git-pages-publish-token -n "$NS" -o jsonpath='{.data.token}' | base64 -d; echo kubectl get secret gitea-reports-publish-token -n "$NS" -o jsonpath='{.data.token}' | base64 -d; echo
``` ```
Vie kopioitu secret Gitea Actions Secrets: Vie kopioitu secret Gitea Actions Secrets:
Kannattaa viedä tämä token ORG tason secretiksi Gitea Actions. Muuten joudut tekemään tämän jokaiselle rapositorylle erikseen. Kannattaa viedä tämä token ORG tason secretiksi Gitea Actions. Muuten joudut tekemään tämän jokaiselle rapositorylle erikseen.
Luo `GIT_PAGES_PUBLISH_TOKEN` secret, ja terminaalista kopioitu arvo `values` kenttään. Luo `REPORTS_PUBLISH_TOKEN` secret, ja terminaalista kopioitu arvo `values` kenttään.
Description voi olla esim: Description voi olla esim:
> Julkaisuun liittyvä salaisuus, jonka ci-reports auth tarkistaa, että saako julkaista raporttia. > Julkaisuun liittyvä salaisuus, jonka gitea-pages auth tarkistaa, että saako julkaista raporttia.
**Gitea UI:ssa:** New Secret → Name: `GIT_PAGES_PUBLISH_TOKEN` → Value: **liitä token** → Save **Gitea UI:ssa:** New Secret → Name: `REPORTS_PUBLISH_TOKEN` → Value: **liitä token** → Save
Toista jokaiselle repolle, joka julkaisee raportteja. Toista jokaiselle repolle, joka julkaisee raportteja.
@@ -99,23 +99,23 @@ Palaa takaisin [README.md](../README.md#käyttöönotto) ja jatka kohdasta "Inst
| Looginen nimi | K8s | Gitea | | Looginen nimi | K8s | Gitea |
|---|---|---| |---|---|---|
| `report_publish_api_token` | `git-pages-publish-auth` (htpasswd) | Actions Secret: `GIT_PAGES_PUBLISH_TOKEN` | | `report_publish_api_token` | `gitea-reports-publish-auth` (htpasswd) | Actions Secret: `REPORTS_PUBLISH_TOKEN` |
| `reports_retention_read_token` | `git-pages-retention-gitea` (token) | PAT: `CI-REPORTS_READ_FOR_RETENTION` | | `reports_retention_read_token` | `gitea-reports-retention-gitea` (token) | PAT: `CI-REPORTS_READ_FOR_RETENTION` |
### Secret Reference Architecture ### Secret Reference Architecture
```mermaid ```mermaid
graph TD graph TD
subgraph "Publish Flow" subgraph "Publish Flow"
P1["Actions Secret<br/>GIT_PAGES_PUBLISH_TOKEN"] P1["Actions Secret<br/>REPORTS_PUBLISH_TOKEN"]
P2["K8s Secret<br/>git-pages-publish-auth"] P2["K8s Secret<br/>gitea-reports-publish-auth"]
P1 -->|token| TRAEFIK P1 -->|token| TRAEFIK
P2 -->|htpasswd| TRAEFIK P2 -->|htpasswd| TRAEFIK
TRAEFIK["Traefik BasicAuth"] TRAEFIK["Traefik BasicAuth"]
end end
subgraph "Retention Flow" subgraph "Retention Flow"
R1["K8s Secret<br/>git-pages-retention-gitea"] R1["K8s Secret<br/>gitea-reports-retention-gitea"]
R2["Gitea PAT<br/>CI-REPORTS_READ_FOR_RETENTION"] R2["Gitea PAT<br/>CI-REPORTS_READ_FOR_RETENTION"]
R1 -->|token| SC["Sidecar"] R1 -->|token| SC["Sidecar"]
SC -->|API auth| GITEA["Gitea API"] SC -->|API auth| GITEA["Gitea API"]
@@ -133,8 +133,8 @@ graph TD
sequenceDiagram sequenceDiagram
participant Actions as Gitea Actions participant Actions as Gitea Actions
participant Traefik as Traefik participant Traefik as Traefik
participant K8sAuth as K8s Secret<br/>git-pages-publish-auth participant K8sAuth as K8s Secret<br/>gitea-reports-publish-auth
participant K8sToken as K8s Secret<br/>git-pages-publish-token participant K8sToken as K8s Secret<br/>gitea-reports-publish-token
participant Upload as upload-sidecar participant Upload as upload-sidecar
participant PV as PVC /app/data participant PV as PVC /app/data
@@ -158,8 +158,8 @@ sequenceDiagram
``` ```
**Kaksi secretiä (Traefik-yhteensopivuus):** **Kaksi secretiä (Traefik-yhteensopivuus):**
- `git-pages-publish-auth` = `users` (htpasswd, Traefik käyttää) - `gitea-reports-publish-auth` = `users` (htpasswd, Traefik käyttää)
- `git-pages-publish-token` = `token` (plaintext, luetaan Giteaan viedessä) - `gitea-reports-publish-token` = `token` (plaintext, luetaan Giteaan viedessä)
--- ---
@@ -189,7 +189,7 @@ GET/HEAD-reitillä ei ole Middlewarea. Luku on julkinen, jos URL tunnetaan.
```mermaid ```mermaid
sequenceDiagram sequenceDiagram
participant CronJob as Retention CronJob participant CronJob as Retention CronJob
participant K8sSecret as K8s Secret<br/>git-pages-retention-gitea participant K8sSecret as K8s Secret<br/>gitea-reports-retention-gitea
participant GiteaAPI as Gitea API participant GiteaAPI as Gitea API
participant PV as PVC /app/data participant PV as PVC /app/data
@@ -218,23 +218,23 @@ joista raportteja on PVC:llä.
- **"secret not found"** — luiko secretit ennen Helm-asennusta? - **"secret not found"** — luiko secretit ennen Helm-asennusta?
- **"401 Unauthorized"** — onko Gitea Actions secret oikea? - **"401 Unauthorized"** — onko Gitea Actions secret oikea?
- **"found 2 elements for secret"** — Traefik vaatii single-key secretin. Varmista että `git-pages-publish-auth` sisältää vain `users`-avaimen. - **"found 2 elements for secret"** — Traefik vaatii single-key secretin. Varmista että `gitea-reports-publish-auth` sisältää vain `users`-avaimen.
- **"token hukkuu"** — generoi uusi token (Vaihe 3) ja päivitä molemmat publish-secretit: - **"token hukkuu"** — generoi uusi token (Vaihe 3) ja päivitä molemmat publish-secretit:
```bash ```bash
# 1. Generoi uusi # 1. Generoi uusi
GIT_PAGES_PUBLISH_TOKEN="$(openssl rand -base64 24)" REPORTS_PUBLISH_TOKEN="$(openssl rand -base64 24)"
# 2. Päivitä K8s secrets (molemmat) # 2. Päivitä K8s secrets (molemmat)
NS=gitea-reports NS=gitea-reports
kubectl delete secret git-pages-publish-auth -n "$NS" kubectl delete secret gitea-reports-publish-auth -n "$NS"
kubectl delete secret git-pages-publish-token -n "$NS" kubectl delete secret gitea-reports-publish-token -n "$NS"
kubectl create secret generic git-pages-publish-auth \ kubectl create secret generic gitea-reports-publish-auth \
--from-literal=users="$(docker run --rm httpd:2-alpine htpasswd -nb publish "$GIT_PAGES_PUBLISH_TOKEN")" \ --from-literal=users="$(docker run --rm httpd:2-alpine htpasswd -nb publish "$REPORTS_PUBLISH_TOKEN")" \
-n "$NS" -n "$NS"
kubectl create secret generic git-pages-publish-token \ kubectl create secret generic gitea-reports-publish-token \
--from-literal=token="$GIT_PAGES_PUBLISH_TOKEN" \ --from-literal=token="$REPORTS_PUBLISH_TOKEN" \
-n "$NS" -n "$NS"
# 3. Päivitä Gitea Actions secret jokaisessa repoissa (luke README:stä) # 3. Päivitä Gitea Actions secret jokaisessa repoissa (luke README:stä)
@@ -249,19 +249,19 @@ ADMIN_TOKEN="<gitea-admin-token>"
NS=gitea-reports NS=gitea-reports
# Lue plaintext-token erillisestä secretistä # Lue plaintext-token erillisestä secretistä
TOKEN=$(kubectl get secret git-pages-publish-token -n "$NS" -o jsonpath='{.data.token}' | base64 -d) TOKEN=$(kubectl get secret gitea-reports-publish-token -n "$NS" -o jsonpath='{.data.token}' | base64 -d)
for repo in "owner/repo1" "owner/repo2" "owner/repo3"; do for repo in "owner/repo1" "owner/repo2" "owner/repo3"; do
curl -X POST "https://gitea.example.com/api/v1/repos/$repo/actions/secrets" \ curl -X POST "https://gitea.example.com/api/v1/repos/$repo/actions/secrets" \
-H "Authorization: token $ADMIN_TOKEN" \ -H "Authorization: token $ADMIN_TOKEN" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "{\"name\":\"GIT_PAGES_PUBLISH_TOKEN\",\"data\":\"$TOKEN\"}" -d "{\"name\":\"REPORTS_PUBLISH_TOKEN\",\"data\":\"$TOKEN\"}"
done done
``` ```
Tai `tea` CLI:lla (Gitea:n virallinen CLI): Tai `tea` CLI:lla (Gitea:n virallinen CLI):
```bash ```bash
tea actions secrets add --repo owner/repo1 GIT_PAGES_PUBLISH_TOKEN "$TOKEN" tea actions secrets add --repo owner/repo1 REPORTS_PUBLISH_TOKEN "$TOKEN"
tea actions secrets add --repo owner/repo2 GIT_PAGES_PUBLISH_TOKEN "$TOKEN" tea actions secrets add --repo owner/repo2 REPORTS_PUBLISH_TOKEN "$TOKEN"
``` ```
+10 -10
View File
@@ -1,7 +1,7 @@
# Tech Stack — git-pages # Tech Stack — gitea-reports
> Mitä teknologioita `git-pages/` Helm chart käyttää ja edellyttää. Tämä dokumentti koskee vain > Mitä teknologioita `gitea-reports/` Helm chart käyttää ja edellyttää. Tämä dokumentti koskee vain
> `git-pages/`-alikansiota monorepossa — ei juuren `gitea-ci-library`-kirjastoa. > `gitea-reports/`-alikansiota monorepossa — ei juuren `gitea-ci-library`-kirjastoa.
--- ---
@@ -9,11 +9,11 @@
| Teknologia | Versio | Käyttö | | Teknologia | Versio | Käyttö |
|---|---|---| |---|---|---|
| **git-pages** (Codeberg) | `0.9.1` | Staattinen sisältö, apex index-site (`/.index`), HTTP PATCH/PUT -julkaisu | | **gitea-reports** (Codeberg) | `0.9.1` | Staattinen sisältö, apex index-site (`/.index`), HTTP PATCH/PUT -julkaisu |
| **Filesystem storage** | — | Sisältö PVC:llä (`/app/data`) | | **Filesystem storage** | — | Sisältö PVC:llä (`/app/data`) |
| **TOML** | — | Sovellusconfig ConfigMapissa (`config.toml`) | | **TOML** | — | Sovellusconfig ConfigMapissa (`config.toml`) |
Image: `codeberg.org/git-pages/git-pages:0.9.1` (ei `v`-etuliitettä tagissa). Image: `codeberg.org/gitea-reports/gitea-reports:0.9.1` (ei `v`-etuliitettä tagissa).
Chart ajaa `PAGES_INSECURE=1` — julkaisuvaltuutus Traefik Middlewaressä, ei forge-authia. Chart ajaa `PAGES_INSECURE=1` — julkaisuvaltuutus Traefik Middlewaressä, ei forge-authia.
@@ -26,7 +26,7 @@ Chart ajaa `PAGES_INSECURE=1` — julkaisuvaltuutus Traefik Middlewaressä, ei f
| **Kubernetes** | 1.24+ | Deployment, Service, PVC, Secret | | **Kubernetes** | 1.24+ | Deployment, Service, PVC, Secret |
| **Helm** | v3 | Chart asennus ja päivitys | | **Helm** | v3 | Chart asennus ja päivitys |
| **Traefik** | CRD `traefik.io/v1alpha1` | IngressRoute, Middleware (`basicAuth`, HTTPS-redirect) | | **Traefik** | CRD `traefik.io/v1alpha1` | IngressRoute, Middleware (`basicAuth`, HTTPS-redirect) |
| **cert-manager** | — | TLS-sertifikaatti (`git-pages-tls`) | | **cert-manager** | — | TLS-sertifikaatti (`gitea-reports-tls`) |
--- ---
@@ -43,8 +43,8 @@ Chart ajaa `PAGES_INSECURE=1` — julkaisuvaltuutus Traefik Middlewaressä, ei f
| Resurssi | Lähde | Dokumentti | | Resurssi | Lähde | Dokumentti |
|---|---|---| |---|---|---|
| `git-pages-publish-auth` | Manuaalinen Secret | [secrets.md](secrets.md) | | `gitea-reports-publish-auth` | Manuaalinen Secret | [secrets.md](secrets.md) |
| `git-pages-tls` | cert-manager Certificate | Automaattinen asennuksessa | | `gitea-reports-tls` | cert-manager Certificate | Automaattinen asennuksessa |
| `ClusterIssuer` | Klusteri (esim. `letsencrypt-prod`) | `dev-values.yaml` | | `ClusterIssuer` | Klusteri (esim. `letsencrypt-prod`) | `dev-values.yaml` |
--- ---
@@ -74,8 +74,8 @@ Esimerkki: `helm upgrade --install gitea-reports ./gitea-reports -n gitea-report
| Teknologia | Syy | | Teknologia | Syy |
|---|---| |---|---|
| **Gitea `pages`-branch** | Ei Gitea git-pages -integraatiota | | **Gitea `pages`-branch** | Ei Gitea gitea-reports -integraatiota |
| **deadnews/gitea-pages** | Ei Gitea API -hakua | | **deadnews/gitea-pages** | Ei Gitea API -hakua |
| **MinIO / S3** | Erillinen raporttivarasto — ei tämän chartin scope | | **MinIO / S3** | Erillinen raporttivarasto — ei tämän chartin scope |
| **Gitea forge-auth / PAT** | Julkaisu BasicAuth-tokenilla (`git-pages-publish-auth`) | | **Gitea forge-auth / PAT** | Julkaisu BasicAuth-tokenilla (`gitea-reports-publish-auth`) |
| **Helm-managed publish Secret** | `publishAuth.create: false` — secret manuaalisesti | | **Helm-managed publish Secret** | `publishAuth.create: false` — secret manuaalisesti |
+2 -2
View File
@@ -3,7 +3,7 @@ Nginx + upload-sidecar installed.
See docs/secrets.md for secret prerequisites (K8s + Gitea Actions). See docs/secrets.md for secret prerequisites (K8s + Gitea Actions).
Install: Install:
helm upgrade --install git-pages ./git-pages -n {{ .Release.Namespace }} --create-namespace -f dev-values.yaml helm upgrade --install gitea-reports ./gitea-reports -n {{ .Release.Namespace }} --create-namespace -f dev-values.yaml
Host: https://{{ .Values.ingress.host }} Host: https://{{ .Values.ingress.host }}
Reports: https://{{ .Values.ingress.host }}/{owner}/{repo}/{branch}/{sha8}/{suite}/ Reports: https://{{ .Values.ingress.host }}/{owner}/{repo}/{branch}/{sha8}/{suite}/
@@ -15,5 +15,5 @@ Publish (CI):
--data-binary @report.tar.gz \ --data-binary @report.tar.gz \
https://{{ .Values.ingress.host }}/{owner}/{repo}/{branch}/{sha8}/{suite}/ https://{{ .Values.ingress.host }}/{owner}/{repo}/{branch}/{sha8}/{suite}/
Upgrade: helm upgrade {{ .Release.Name }} ./git-pages -n {{ .Release.Namespace }} -f dev-values.yaml Upgrade: helm upgrade {{ .Release.Name }} ./gitea-reports -n {{ .Release.Namespace }} -f dev-values.yaml
Uninstall: helm uninstall {{ .Release.Name }} -n {{ .Release.Namespace }} Uninstall: helm uninstall {{ .Release.Name }} -n {{ .Release.Namespace }}
+10 -10
View File
@@ -1,8 +1,8 @@
{{- define "git-pages.name" -}} {{- define "gitea-reports.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{- define "git-pages.fullname" -}} {{- define "gitea-reports.fullname" -}}
{{- if .Values.fullnameOverride }} {{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }} {{- else }}
@@ -15,25 +15,25 @@
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- define "git-pages.chart" -}} {{- define "gitea-reports.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{- define "git-pages.labels" -}} {{- define "gitea-reports.labels" -}}
helm.sh/chart: {{ include "git-pages.chart" . }} helm.sh/chart: {{ include "gitea-reports.chart" . }}
{{ include "git-pages.selectorLabels" . }} {{ include "gitea-reports.selectorLabels" . }}
{{- if .Chart.AppVersion }} {{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }} {{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }} {{- end }}
{{- define "git-pages.selectorLabels" -}} {{- define "gitea-reports.selectorLabels" -}}
app.kubernetes.io/name: {{ include "git-pages.name" . }} app.kubernetes.io/name: {{ include "gitea-reports.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }} {{- end }}
{{- define "git-pages.componentLabels" -}} {{- define "gitea-reports.componentLabels" -}}
{{ include "git-pages.labels" . }} {{ include "gitea-reports.labels" . }}
app.kubernetes.io/component: pages-server app.kubernetes.io/component: pages-server
{{- end }} {{- end }}
+3 -3
View File
@@ -2,11 +2,11 @@
apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: {{ include "git-pages.fullname" . }}-tls name: {{ include "gitea-reports.fullname" . }}-tls
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
secretName: git-pages-tls secretName: {{ include "gitea-reports.fullname" . }}-tls
dnsNames: dnsNames:
- {{ .Values.ingress.host | quote }} - {{ .Values.ingress.host | quote }}
issuerRef: issuerRef:
+2 -2
View File
@@ -1,9 +1,9 @@
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: {{ include "git-pages.fullname" . }}-config name: {{ include "gitea-reports.fullname" . }}-config
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
data: data:
default.conf: | default.conf: |
client_max_body_size {{ .Values.nginx.bodySize }}; client_max_body_size {{ .Values.nginx.bodySize }};
+7 -7
View File
@@ -1,18 +1,18 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "git-pages.fullname" . }} name: {{ include "gitea-reports.fullname" . }}
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
replicas: 1 replicas: 1
selector: selector:
matchLabels: matchLabels:
{{- include "git-pages.selectorLabels" . | nindent 6 }} {{- include "gitea-reports.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 8 }} {{- include "gitea-reports.componentLabels" . | nindent 8 }}
spec: spec:
securityContext: securityContext:
fsGroup: 1000 fsGroup: 1000
@@ -57,13 +57,13 @@ spec:
volumes: volumes:
- name: nginx-conf - name: nginx-conf
configMap: configMap:
name: {{ include "git-pages.fullname" . }}-config name: {{ include "gitea-reports.fullname" . }}-config
items: items:
- key: default.conf - key: default.conf
path: default.conf path: default.conf
- name: upload-script - name: upload-script
configMap: configMap:
name: {{ include "git-pages.fullname" . }}-config name: {{ include "gitea-reports.fullname" . }}-config
defaultMode: 0755 defaultMode: 0755
items: items:
- key: upload-server.py - key: upload-server.py
@@ -71,5 +71,5 @@ spec:
{{- if .Values.persistence.enabled }} {{- if .Values.persistence.enabled }}
- name: data - name: data
persistentVolumeClaim: persistentVolumeClaim:
claimName: {{ include "git-pages.fullname" . }}-data claimName: {{ include "gitea-reports.fullname" . }}-data
{{- end }} {{- end }}
+10 -10
View File
@@ -2,9 +2,9 @@
apiVersion: traefik.io/v1alpha1 apiVersion: traefik.io/v1alpha1
kind: IngressRoute kind: IngressRoute
metadata: metadata:
name: {{ include "git-pages.fullname" . }} name: {{ include "gitea-reports.fullname" . }}
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
entryPoints: entryPoints:
- {{ .Values.ingress.entryPoints.websecure }} - {{ .Values.ingress.entryPoints.websecure }}
@@ -14,24 +14,24 @@ spec:
(Method(`PATCH`) || Method(`PUT`)) (Method(`PATCH`) || Method(`PUT`))
kind: Rule kind: Rule
middlewares: middlewares:
- name: {{ include "git-pages.fullname" . }}-publish-auth - name: {{ include "gitea-reports.fullname" . }}-publish-auth
services: services:
- name: {{ include "git-pages.fullname" . }} - name: {{ include "gitea-reports.fullname" . }}
port: {{ .Values.upload.port }} port: {{ .Values.upload.port }}
- match: Host(`{{ .Values.ingress.host }}`) && (Method(`GET`) || Method(`HEAD`)) - match: Host(`{{ .Values.ingress.host }}`) && (Method(`GET`) || Method(`HEAD`))
kind: Rule kind: Rule
services: services:
- name: {{ include "git-pages.fullname" . }} - name: {{ include "gitea-reports.fullname" . }}
port: {{ .Values.nginx.port }} port: {{ .Values.nginx.port }}
tls: tls:
secretName: git-pages-tls secretName: {{ include "gitea-reports.fullname" . }}-tls
--- ---
apiVersion: traefik.io/v1alpha1 apiVersion: traefik.io/v1alpha1
kind: IngressRoute kind: IngressRoute
metadata: metadata:
name: {{ include "git-pages.fullname" . }}-http name: {{ include "gitea-reports.fullname" . }}-http
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
entryPoints: entryPoints:
- {{ .Values.ingress.entryPoints.web }} - {{ .Values.ingress.entryPoints.web }}
@@ -41,8 +41,8 @@ spec:
!PathPrefix(`/.well-known/acme-challenge/`) !PathPrefix(`/.well-known/acme-challenge/`)
kind: Rule kind: Rule
middlewares: middlewares:
- name: {{ include "git-pages.fullname" . }}-https-redirect - name: {{ include "gitea-reports.fullname" . }}-https-redirect
services: services:
- name: {{ include "git-pages.fullname" . }} - name: {{ include "gitea-reports.fullname" . }}
port: {{ .Values.nginx.port }} port: {{ .Values.nginx.port }}
{{- end }} {{- end }}
+5 -5
View File
@@ -2,19 +2,19 @@
apiVersion: traefik.io/v1alpha1 apiVersion: traefik.io/v1alpha1
kind: Middleware kind: Middleware
metadata: metadata:
name: {{ include "git-pages.fullname" . }}-publish-auth name: {{ include "gitea-reports.fullname" . }}-publish-auth
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
basicAuth: basicAuth:
secret: git-pages-publish-auth secret: {{ include "gitea-reports.fullname" . }}-publish-auth
--- ---
apiVersion: traefik.io/v1alpha1 apiVersion: traefik.io/v1alpha1
kind: Middleware kind: Middleware
metadata: metadata:
name: {{ include "git-pages.fullname" . }}-https-redirect name: {{ include "gitea-reports.fullname" . }}-https-redirect
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
redirectScheme: redirectScheme:
scheme: https scheme: https
@@ -2,9 +2,9 @@
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: git-pages-publish-auth name: {{ include "gitea-reports.fullname" . }}-publish-auth
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
type: Opaque type: Opaque
stringData: stringData:
users: | users: |
+2 -2
View File
@@ -2,9 +2,9 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: {{ include "git-pages.fullname" . }}-data name: {{ include "gitea-reports.fullname" . }}-data
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
accessModes: accessModes:
- {{ .Values.persistence.accessMode }} - {{ .Values.persistence.accessMode }}
@@ -2,9 +2,9 @@
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
data: data:
retention.json: | retention.json: |
{{- .Values.retention.rules | toJson | nindent 4 }} {{- .Values.retention.rules | toJson | nindent 4 }}
@@ -2,9 +2,9 @@
apiVersion: batch/v1 apiVersion: batch/v1
kind: CronJob kind: CronJob
metadata: metadata:
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
schedule: {{ .Values.retention.schedule | quote }} schedule: {{ .Values.retention.schedule | quote }}
concurrencyPolicy: Forbid concurrencyPolicy: Forbid
@@ -16,10 +16,10 @@ spec:
template: template:
metadata: metadata:
labels: labels:
app.kubernetes.io/name: git-pages-retention app.kubernetes.io/name: {{ include "gitea-reports.fullname" . }}-retention
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
spec: spec:
serviceAccountName: git-pages-retention serviceAccountName: {{ include "gitea-reports.fullname" . }}-retention
restartPolicy: OnFailure restartPolicy: OnFailure
containers: containers:
- name: retention - name: retention
@@ -46,7 +46,7 @@ spec:
- name: GITEA_TOKEN - name: GITEA_TOKEN
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: git-pages-retention-gitea name: {{ include "gitea-reports.fullname" . }}-retention-gitea
key: token key: token
volumeMounts: volumeMounts:
- name: data - name: data
@@ -58,14 +58,14 @@ spec:
volumes: volumes:
- name: data - name: data
persistentVolumeClaim: persistentVolumeClaim:
claimName: {{ include "git-pages.fullname" . }}-data claimName: {{ include "gitea-reports.fullname" . }}-data
- name: scripts - name: scripts
configMap: configMap:
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
defaultMode: 0755 defaultMode: 0755
- name: config - name: config
configMap: configMap:
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
items: items:
- key: retention.json - key: retention.json
path: retention.json path: retention.json
+8 -8
View File
@@ -2,16 +2,16 @@
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
metadata: metadata:
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
rules: rules:
- apiGroups: ["apps"] - apiGroups: ["apps"]
resources: ["deployments", "deployments/scale"] resources: ["deployments", "deployments/scale"]
@@ -23,15 +23,15 @@ rules:
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
metadata: metadata:
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: Role kind: Role
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: git-pages-retention name: {{ include "gitea-reports.fullname" . }}-retention
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
{{- end }} {{- end }}
+3 -3
View File
@@ -1,13 +1,13 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "git-pages.fullname" . }} name: {{ include "gitea-reports.fullname" . }}
labels: labels:
{{- include "git-pages.componentLabels" . | nindent 4 }} {{- include "gitea-reports.componentLabels" . | nindent 4 }}
spec: spec:
type: {{ .Values.service.type }} type: {{ .Values.service.type }}
selector: selector:
{{- include "git-pages.selectorLabels" . | nindent 4 }} {{- include "gitea-reports.selectorLabels" . | nindent 4 }}
ports: ports:
- name: http-read - name: http-read
port: {{ .Values.nginx.port }} port: {{ .Values.nginx.port }}
+1 -1
View File
@@ -21,7 +21,7 @@ while IFS='=' read -r key value || [ -n "$key" ]; do
done < "$CONF_FILE" done < "$CONF_FILE"
[ -z "${GITEA_TOKEN:-}" ] && echo "ERROR: GITEA_TOKEN secret is not set" >&2 && ERRORS=1 [ -z "${GITEA_TOKEN:-}" ] && echo "ERROR: GITEA_TOKEN secret is not set" >&2 && ERRORS=1
[ -z "${GIT_PAGES_PUBLISH_TOKEN:-}" ] && echo "ERROR: GIT_PAGES_PUBLISH_TOKEN secret is not set" >&2 && ERRORS=1 [ -z "${REPORTS_PUBLISH_TOKEN:-}" ] && echo "ERROR: REPORTS_PUBLISH_TOKEN secret is not set" >&2 && ERRORS=1
if [ "$ERRORS" -ne 0 ]; then if [ "$ERRORS" -ne 0 ]; then
echo "FATAL: CI config validation failed" >&2 echo "FATAL: CI config validation failed" >&2
+2 -2
View File
@@ -5,7 +5,7 @@ SUITE_PATH="${1:-}"
[ -n "$SUITE_PATH" ] || { echo "ERROR: suite_path argument required" >&2; exit 1; } [ -n "$SUITE_PATH" ] || { echo "ERROR: suite_path argument required" >&2; exit 1; }
[ -n "${GIT_PAGES_URL:-}" ] || { echo "ERROR: GIT_PAGES_URL is not set" >&2; exit 1; } [ -n "${GIT_PAGES_URL:-}" ] || { echo "ERROR: GIT_PAGES_URL is not set" >&2; exit 1; }
[ -n "${GIT_PAGES_PUBLISH_TOKEN:-}" ] || { echo "ERROR: GIT_PAGES_PUBLISH_TOKEN is not set" >&2; exit 1; } [ -n "${REPORTS_PUBLISH_TOKEN:-}" ] || { echo "ERROR: REPORTS_PUBLISH_TOKEN is not set" >&2; exit 1; }
[ -n "${GITHUB_REPOSITORY:-}" ] || { echo "ERROR: GITHUB_REPOSITORY is not set" >&2; exit 1; } [ -n "${GITHUB_REPOSITORY:-}" ] || { echo "ERROR: GITHUB_REPOSITORY is not set" >&2; exit 1; }
[ -n "${GITHUB_SHA:-}" ] || { echo "ERROR: GITHUB_SHA is not set" >&2; exit 1; } [ -n "${GITHUB_SHA:-}" ] || { echo "ERROR: GITHUB_SHA is not set" >&2; exit 1; }
[ -n "${GITHUB_REF_NAME:-}" ] || { echo "ERROR: GITHUB_REF_NAME is not set" >&2; exit 1; } [ -n "${GITHUB_REF_NAME:-}" ] || { echo "ERROR: GITHUB_REF_NAME is not set" >&2; exit 1; }
@@ -93,7 +93,7 @@ tar czf "$TAR" -C "$WORK/$SUITE" .
# PUT upload-sidecariin # PUT upload-sidecariin
PUBLISH_URL="${GIT_PAGES_URL}/${OWNER}/${REPO}/${BRANCH}/${SHA8}/${SUITE}/" PUBLISH_URL="${GIT_PAGES_URL}/${OWNER}/${REPO}/${BRANCH}/${SHA8}/${SUITE}/"
HTTP_CODE=$(curl -sS -X PUT "$PUBLISH_URL" \ HTTP_CODE=$(curl -sS -X PUT "$PUBLISH_URL" \
-u "${PAGES_USER}:${GIT_PAGES_PUBLISH_TOKEN}" \ -u "${PAGES_USER}:${REPORTS_PUBLISH_TOKEN}" \
-H "Content-Type: application/tar+gz" \ -H "Content-Type: application/tar+gz" \
--data-binary @"$TAR" \ --data-binary @"$TAR" \
-o /tmp/git-pages-publish-response.txt \ -o /tmp/git-pages-publish-response.txt \
+1 -1
View File
@@ -7,7 +7,7 @@ SUITE_PATH="${1:-}"
[ -n "${GITEA_API_URL:-}" ] || { echo "ERROR: GITEA_API_URL is not set" >&2; exit 1; } [ -n "${GITEA_API_URL:-}" ] || { echo "ERROR: GITEA_API_URL is not set" >&2; exit 1; }
[ -n "${GITEA_TOKEN:-}" ] || { echo "ERROR: GITEA_TOKEN is not set" >&2; exit 1; } [ -n "${GITEA_TOKEN:-}" ] || { echo "ERROR: GITEA_TOKEN is not set" >&2; exit 1; }
[ -n "${GIT_PAGES_URL:-}" ] || { echo "ERROR: GIT_PAGES_URL is not set" >&2; exit 1; } [ -n "${GIT_PAGES_URL:-}" ] || { echo "ERROR: GIT_PAGES_URL is not set" >&2; exit 1; }
[ -n "${GIT_PAGES_PUBLISH_TOKEN:-}" ] || { echo "ERROR: GIT_PAGES_PUBLISH_TOKEN is not set" >&2; exit 1; } [ -n "${REPORTS_PUBLISH_TOKEN:-}" ] || { echo "ERROR: REPORTS_PUBLISH_TOKEN is not set" >&2; exit 1; }
SCRIPT_DIR="$(dirname "$0")" SCRIPT_DIR="$(dirname "$0")"
+1 -1
View File
@@ -473,7 +473,7 @@ VERSION_FILE=git-pages/Chart.yaml
| Secret | Pakollinen | | Secret | Pakollinen |
|---|---| |---|---|
| `GITEA_TOKEN` | Aina (Gitean sisäinen, automaattisesti saatavilla) | | `GITEA_TOKEN` | Aina (Gitean sisäinen, automaattisesti saatavilla) |
| `GIT_PAGES_PUBLISH_TOKEN` | Aina | | `REPORTS_PUBLISH_TOKEN` | Aina |
| `DOCKER_USERNAME` | Vain jos buildaat kontteja | | `DOCKER_USERNAME` | Vain jos buildaat kontteja |
| `DOCKER_PASSWORD` | Vain jos buildaat kontteja | | `DOCKER_PASSWORD` | Vain jos buildaat kontteja |
| `HELM_USER` | Vain jos pushaat Helm chartin OCI-rekisteriin (oletus `github.actor`) | | `HELM_USER` | Vain jos pushaat Helm chartin OCI-rekisteriin (oletus `github.actor`) |
+5 -5
View File
@@ -44,15 +44,15 @@ EOF
[[ "$output" == *"GITEA_TOKEN"* ]] [[ "$output" == *"GITEA_TOKEN"* ]]
} }
@test "missing GIT_PAGES_PUBLISH_TOKEN secret → exit 1" { @test "missing REPORTS_PUBLISH_TOKEN secret → exit 1" {
cat > "$CONF_FILE" <<EOF cat > "$CONF_FILE" <<EOF
SOME_KEY=ok SOME_KEY=ok
EOF EOF
export GITEA_TOKEN="sometoken" export GITEA_TOKEN="sometoken"
unset GIT_PAGES_PUBLISH_TOKEN unset REPORTS_PUBLISH_TOKEN
run bash scripts/ci-validate.sh run bash scripts/ci-validate.sh
[ "$status" -eq 1 ] [ "$status" -eq 1 ]
[[ "$output" == *"GIT_PAGES_PUBLISH_TOKEN"* ]] [[ "$output" == *"REPORTS_PUBLISH_TOKEN"* ]]
} }
@test "valid config and all secrets → exit 0" { @test "valid config and all secrets → exit 0" {
@@ -61,7 +61,7 @@ API_URL=https://example.com
ANOTHER=https://test.fi ANOTHER=https://test.fi
EOF EOF
export GITEA_TOKEN="sometoken" export GITEA_TOKEN="sometoken"
export GIT_PAGES_PUBLISH_TOKEN="sometoken" export REPORTS_PUBLISH_TOKEN="sometoken"
run bash scripts/ci-validate.sh run bash scripts/ci-validate.sh
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }
@@ -73,7 +73,7 @@ EOF
VALID_URL=https://example.com VALID_URL=https://example.com
EOF EOF
export GITEA_TOKEN="sometoken" export GITEA_TOKEN="sometoken"
export GIT_PAGES_PUBLISH_TOKEN="sometoken" export REPORTS_PUBLISH_TOKEN="sometoken"
run bash scripts/ci-validate.sh run bash scripts/ci-validate.sh
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }
+4 -4
View File
@@ -4,7 +4,7 @@ setup() {
source tests/helpers/mock-api.sh source tests/helpers/mock-api.sh
export GITEA_API_URL="http://localhost:18080" export GITEA_API_URL="http://localhost:18080"
export GIT_PAGES_URL="http://localhost:18080" export GIT_PAGES_URL="http://localhost:18080"
export GIT_PAGES_PUBLISH_TOKEN="publish-token-abc" export REPORTS_PUBLISH_TOKEN="publish-token-abc"
export GITHUB_REPOSITORY="test-owner/test-repo" export GITHUB_REPOSITORY="test-owner/test-repo"
export GITHUB_SHA="abc123def456789012345678901234567890abcd" export GITHUB_SHA="abc123def456789012345678901234567890abcd"
export GITHUB_REF_NAME="main" export GITHUB_REF_NAME="main"
@@ -38,11 +38,11 @@ teardown() {
[[ "$output" == *"GIT_PAGES_URL"* ]] [[ "$output" == *"GIT_PAGES_URL"* ]]
} }
@test "missing GIT_PAGES_PUBLISH_TOKEN → exit 1" { @test "missing REPORTS_PUBLISH_TOKEN → exit 1" {
unset GIT_PAGES_PUBLISH_TOKEN unset REPORTS_PUBLISH_TOKEN
run bash scripts/publish-git-pages.sh "unit-tests" run bash scripts/publish-git-pages.sh "unit-tests"
[ "$status" -eq 1 ] [ "$status" -eq 1 ]
[[ "$output" == *"GIT_PAGES_PUBLISH_TOKEN"* ]] [[ "$output" == *"REPORTS_PUBLISH_TOKEN"* ]]
} }
@test "missing GITHUB_REPOSITORY → exit 1" { @test "missing GITHUB_REPOSITORY → exit 1" {
+4 -4
View File
@@ -4,7 +4,7 @@ setup() {
export GITEA_API_URL="http://localhost:18080" export GITEA_API_URL="http://localhost:18080"
export GITEA_TOKEN="test-token-abc" export GITEA_TOKEN="test-token-abc"
export GIT_PAGES_URL="http://localhost:18080" export GIT_PAGES_URL="http://localhost:18080"
export GIT_PAGES_PUBLISH_TOKEN="publish-token-abc" export REPORTS_PUBLISH_TOKEN="publish-token-abc"
export GITHUB_REPOSITORY="test-owner/test-repo" export GITHUB_REPOSITORY="test-owner/test-repo"
export GITHUB_SHA="abc123def456789012345678901234567890abcd" export GITHUB_SHA="abc123def456789012345678901234567890abcd"
} }
@@ -36,9 +36,9 @@ setup() {
[[ "$output" == *"GIT_PAGES_URL"* ]] [[ "$output" == *"GIT_PAGES_URL"* ]]
} }
@test "missing GIT_PAGES_PUBLISH_TOKEN → exit 1" { @test "missing REPORTS_PUBLISH_TOKEN → exit 1" {
unset GIT_PAGES_PUBLISH_TOKEN unset REPORTS_PUBLISH_TOKEN
run bash scripts/publish.sh "unit-tests" run bash scripts/publish.sh "unit-tests"
[ "$status" -eq 1 ] [ "$status" -eq 1 ]
[[ "$output" == *"GIT_PAGES_PUBLISH_TOKEN"* ]] [[ "$output" == *"REPORTS_PUBLISH_TOKEN"* ]]
} }