Files
gitea-ci-library/git-pages/README.md
T
moilanik 28754bd410
ci-report POC report published
CI / call-engine (push) Successful in 14s
docs: POC-katselmus — git-pages retention, ADRt, dokumenttipäivitykset
- ADR 0004: commit-status-periaate (natiivi riittää, API vain custom-linkkiin)
- ADR 0005: provider & consumer -malli (ci-engine.yml lukittu rajapinta)
- docs/design-rationale: uusi periaate 1 "Hyödynnä natiivia",
  periaate 2 korjattu (API vain tarvittaessa),
  periaate 6 (MinIO→git-pages), teknologiavalinnat poistettu
- docs/config-model: isContainerBuild→isArtifactBuild, Docker-labelit poistettu
- docs/ai-context: monorepo-kuvaus (git-pages oma kokonaisuus, ohut rajapinta)
- docs/architecture, tech-stack, report-hosting, shared-scripts, workflows:
  MinIO→git-pages, provider agnostinen build-ekosysteemeille
- docs/adr/: ADRt siirretty decisions/→adr/
- git-pages/docs: retention-osiot päivitetty CronJob→sidecar+HTTP API,
  URL-kaava korjattu (reports/{sha8}/)
- git-pages/docs/implementation-notes: uusi (storage v2, Host-header,
  whiteout, .init, PATCH+directoryt)
- git-pages/templates/init-job.yaml: post-install init (.index)
- scripts/publish-git-pages.sh: PUT-fallback poistettu (init hoitaa),
  palauttaa BASE URL ilman index.html
2026-06-12 08:55:23 +03:00

3.9 KiB
Raw Blame History

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/.


Quick Start

1. Secretit

Luo secretit ennen Helm-asennusta: docs/secrets.md

# Avaa secrets.md ja suorita snipletit siellä
# Palaa tähän jälkeen Helm-asennukseen

2. Instanssin values-tiedosto

# 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

NS=git-pages
VALUES=my-values.yaml

helm upgrade --install git-pages ./git-pages \
  -n "$NS" --create-namespace \
  -f "$VALUES"

Helm ajaa asennuksen jälkeen init-jobin, joka PUTtaa paikanpitäjäsivun git-pagesiin. Tämä luo tarvittavan .index-tiedoston — sen jälkeen Gitea Actions -scriptit voivat käyttää suoraan PATCHia ilman PUT-fallbackia.


Vie publish-token Gitea Actions-secretiin (per repo)

⚠️ Tehtävä jokaiselle repoille, joka julkaisee raportteja git-pagesiin.

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 34, tai katso automatisointi.


Käyttöönotto

1. Secretit

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:

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.

3. Helm-asennus

Repojuuresta (sama NS kuin docs/secrets.md):

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:

# 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.