Files
gitea-ci-library/git-pages/README.md
T
niko dacb8b4ef7
CI / feature (push) Has been skipped
CI / main (push) Failing after 0s
POC: test reusable workflow job visibility in Gitea Actions (#5)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com>
Reviewed-on: #5
2026-06-13 09:37:47 +03:00

3.9 KiB
Raw Permalink 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.