Files
gitea-ci-library/gitea-reports
niko f3abd42f17
CI Main / Config load (push) Successful in 23s
CI Gitea Reports Main / Config load (push) Successful in 23s
CI Gitea Reports Main / Latest version (push) Successful in 20s
CI Main / Latest versio (push) Successful in 21s
ci-helm-build-push Helm push 0.2.1
CI Gitea Reports Main / Build & Push Helm chart (push) Successful in 41s
unit-tests Bats test report
acc-tests Cucumber test report
CI Gitea Reports Main / Report Summary (push) Successful in 3s
ci-docker-build-push Docker push 0.2.36
CI Main / Build & Push Docker (push) Successful in 32s
CI Main / Report Summary (push) Successful in 3s
CI Main / Move provider version tag (push) Successful in 10s
gitops/gitea-ci-library/gitea-reports GitOps: gitea-reports 0.2.1
CI Gitea Reports Main / GitOps (push) Successful in 33s
CI Main / Cucumber tests (push) Successful in 1m25s
CI Main / Bats tests (push) Successful in 1m26s
gitops/gitea-ci-library GitOps: 0.2.36
CI Main / GitOps (push) Successful in 32s
Fix/git pages gitea reports 1 (#49)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com>
Reviewed-on: #49
2026-06-28 09:25:41 +03:00
..
2026-06-28 09:25:41 +03:00

gitea-reports

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 gitea-reports/dev-values.yaml my-values.yaml
# Muuta: ingress.host, certificate.issuerRef.name, jne.

3. Helm-asennus

NS=gitea-reports
VALUES=gitea-reports/dev-values.yaml

helm upgrade --install gitea-reports ./gitea-reports \
  -n "$NS" --create-namespace \
  -f "$VALUES"

helm template gitea-reports ./gitea-reports -n "$NS" -f "$VALUES"

Nginx ja upload-sidecar käynnistyvät suoraan ilman init-vaihetta. PV on tyhjä ennen ensimmäistä CI-julkaisua.


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

⚠️ Tehtävä jokaiselle repoille, joka julkaisee raportteja gitea-reportsiin.

NS=gitea-reports
REPO_OWNER="niko"
REPO_NAME="gitea-ci-library"

# 1. Lue plaintext-token erillisestä secretistä
TOKEN=$(kubectl get secret gitea-reports-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: REPORTS_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=gitea-reports
VALUES=gitea-reports/dev-values.yaml

helm upgrade --install gitea-reports ./gitea-reports \
  -n "$NS" --create-namespace \
  -f "$VALUES"

helm template gitea-reports ./gitea-reports -f "$VALUES"

CI-julkaisu

Julkaisu DNS-osoitteeseen BasicAuthilla:

# Esimerkki: julkaise raportti
curl -X PUT \
  -u publish:$REPORTS_PUBLISH_TOKEN \
  -H "Content-Type: application/tar+gz" \
  --data-binary @report.tar.gz \
  https://ci-reports.helm-dev.keskikuja.site/{owner}/{repo}/{branch}/{sha8}/{suite}/

Vaaditut asetukset:

Missä Arvo
Gitea Actions secret REPORTS_PUBLISH_TOKEN (sama kuin K8s gitea-reports-publish-token token-avain)
Scriptissä bash scripts/publish-gitea-reports.sh <suite>

K8s secretit (Traefik-yhteensopivuus):

  • gitea-reports-publish-auth = htpasswd (Traefik BasicAuth middleware)
  • gitea-reports-publish-token = plaintext (luetaan Giteaan viedessä)

Tarkemmat secret-ohjeet: docs/secrets.md.


Testaus

Retention-logiikalle on unit-testit, jotka testaa funktiot ja Phase 3 -säännöt erikseen ilman ulkoisia riippuvuuksia.

cd gitea-reports
bats tests/retention.bats

Testit käyttävät <root>/files/retention-lib.sh -jaettua kirjastoa, jota myös retention-cleanup.sh sourceaa.

Vaatimukset: bats, jq, date (GNU date tai BSD date ISO 8601 -tuella).


Retention

Ylläpitoscripti, joka poistaa vanhat raportit PV:ltä suoraan retentionsääntöjen mukaan. Ajetaan CronJobina Kubernetesissa.

Retention lukee PV:tä suoraan (find, ls, stat), tarkistaa branchin olemassaolon Giteasta, ja poistaa vanhat commit-kansiot rm -rf-komentona. Ei HTTP API:a retentionia varten.