# git-pages Jaettu **Gitea CI -raporttien** tallennus- ja lukupaikka: HTML-raportit (esim. Cucumber) commit-kohtaisiin polkuihin, selaimella avattavina linkkeinä Gitean commitin CI-job raportista. Kuvaus ja perustelut: [docs/](docs/). --- ## Quick Start ### 1. Secretit Luo secretit ennen Helm-asennusta: [docs/secrets.md](docs/secrets.md) ```bash # Avaa secrets.md ja suorita snipletit siellä # Palaa tähän jälkeen Helm-asennukseen ``` ### 2. Instanssin values-tiedosto ```bash # Muokkaa oma values-tiedosto (tai käytä dev-values.yaml) cp git-pages/dev-values.yaml my-values.yaml # Muuta: ingress.host, certificate.issuerRef.name, jne. ``` ### 3. Helm-asennus ```bash NS=git-pages VALUES=my-values.yaml helm upgrade --install git-pages ./git-pages \ -n "$NS" --create-namespace \ -f "$VALUES" ``` --- ## Vie publish-token Gitea Actions-secretiin (per repo) ⚠️ **Tehtävä jokaiselle repoille**, joka julkaisee raportteja git-pagesiin. ```bash NS=git-pages REPO_OWNER="niko" REPO_NAME="gitea-ci-library" # 1. Lue plaintext-token erillisestä secretistä TOKEN=$(kubectl get secret git-pages-publish-token -n "$NS" -o jsonpath='{.data.token}' | base64 -d) # 2. Kopioi leikepöydälle echo -n "$TOKEN" | pbcopy # macOS # echo -n "$TOKEN" | xclip -sel clip # Linux # 3. Avaa Gitea Actions secrets -sivu 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 > 💡 **Monelle repoille:** Toista vaiheet 3–4, tai katso [automatisointi](docs/secrets.md#automatisointi-useamman-repon-salaisuuden-lis%C3%A4%C3%A4miseen). --- ## Käyttöönotto ### 1. Secretit [docs/secrets.md](docs/secrets.md) ### 2. Instanssin values-tiedosto `values.yaml` sisältää jaetut vakiot. Ympäristökohtaiset arvot omaan tiedostoon, esim. `dev-values.yaml` / `prod-values.yaml`: ```yaml ingress: host: pages.example.com # julkinen host (luku + julkaisu) certificate: issuerRef: name: letsencrypt-prod # cert-manager ClusterIssuer / Issuer kind: ClusterIssuer persistence: storageClass: "" # tyhjä = klusterin oletus size: 5Gi retention: giteaApiUrl: https://gitea.example.com rules: default: maxAgeDays: 90 keepMin: 5 branches: main: maxAgeDays: 365 keepMin: 20 ``` Esimerkki dev-ympäristöstä: [dev-values.yaml](dev-values.yaml). ### 3. Helm-asennus Repojuuresta (sama `NS` kuin [docs/secrets.md](docs/secrets.md)): ```bash NS=git-pages VALUES=git-pages/dev-values.yaml helm upgrade --install git-pages ./git-pages \ -n "$NS" --create-namespace \ -f "$VALUES" helm template git-pages ./git-pages -f "$VALUES" ``` --- ## CI-julkaisu Julkaisu DNS-osoitteeseen BasicAuthilla: ```bash # Esimerkki: julkaise raportti curl -X PATCH https://ci-reports.helm-dev.keskikuja.site/owner/repo/commit/sha8/ \ -H "Authorization: Basic $(echo -n "publish:$GIT_PAGES_PUBLISH_TOKEN" | base64)" \ -H "Content-Type: application/x-tar" \ --data-binary @raportti.tar ``` **Vaaditut asetukset:** | Missä | Arvo | |-------|------| | Gitea Actions secret | `GIT_PAGES_PUBLISH_TOKEN` (sama kuin K8s `git-pages-publish-token` `token`-avain) | | Scriptissä | `curl` käyttää BasicAuth-headeria yllä | **K8s secretit (Traefik-yhteensopivuus):** - `git-pages-publish-auth` = htpasswd (Traefik BasicAuth middleware) - `git-pages-publish-token` = plaintext (luetaan Giteaan viedessä) Tarkemmat secret-ohjeet: [docs/secrets.md](docs/secrets.md).