bats moun non read only
CI / load-config (push) Successful in 11s
ci-bats Bats tests
ci-cucumber Cucumber tests
CI / Quality Gate (push) Failing after 1m15s
CI / main (push) Has been skipped

This commit is contained in:
moilanik
2026-06-14 07:36:34 +03:00
parent 3e7e2e7473
commit afe8a0fe38
3 changed files with 45 additions and 12 deletions
+37 -1
View File
@@ -111,7 +111,43 @@ Avainkomponentit:
- Jokainen testisetti omassa jobissaan
- Finalize/build voi kerätä yhteenvedon (ei julkaista summarya jos kenelläkään ei ole linkkiä)
## 7. Inline Logic Threshold
## 7. Commit Status Before Exit
Commit status (`ci-bats`, `ci-cucumber`) on asetettava **ennen** stepin
`exit`-komentoa, samassa shell-prosessissa. Ei `GITHUB_ENV`-propagointiin
luottamista stepien välillä — Gitea Actions ei välttämättä prosessoi
`GITHUB_ENV`-tiedostoa epäonnistuneen stepin jälkeen.
Käytäntö testi-stepissä:
```
testit_ajoon
EXIT=$?
STATE="success"
[ "${EXIT}" != "0" ] && STATE="failure"
# Jos raportti on kirjoitettu levylle → linkki git-pagesiin
if [ -f "reports/${SHA8}/sute/index.html" ]; then
bash .ci/scripts/report-status.sh "${STATE}" "Kuvaus" ci-{suite} {suite}
else
# Muuten linkki Gitea Actions logiin
bash .ci/scripts/report-status.sh "${STATE}" "Kuvaus" ci-{suite}
fi
exit ${EXIT}
```
Tämä takaa:
- Aina commit status riippumatta siitä, onko kyseessä tool- vai test error
- Oikea URL: raportti git-pagesissa (jos tiedosto on kirjoitettu) tai Gitea Actions logeissa
- PR merge-esto toimii luotettavasti: branch protection näkee statuksen
aina, koska se kirjoitetaan ennen stepin failaamista
Julkaisu (`publish-git-pages.sh`) jää edelleen omaksi stepikseen `if: always()`:lla.
## 8. Inline Logic Threshold
Logiikka workflow YAML:ssa on hauras: YAML:n sisennys, heredocit ja
kenoviivat tuottavat helposti toimimattomia steppejä.