From 1cd62562e0ad395c69525b045edbc67afa100e96 Mon Sep 17 00:00:00 2001 From: moilanik Date: Sat, 20 Jun 2026 14:33:34 +0300 Subject: [PATCH] ci kontin testiohje --- skills/ci-container-build/SKILL.md | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/skills/ci-container-build/SKILL.md b/skills/ci-container-build/SKILL.md index e19f598..04d5db8 100644 --- a/skills/ci-container-build/SKILL.md +++ b/skills/ci-container-build/SKILL.md @@ -182,6 +182,42 @@ vain build-vaiheessa — `apk del curl` poistaa työkalun ennen runtimea. Tapa C pre-cacheaa kielikohtaiset riippuvuudet ja tuottaa täysin offline-runtime-kontin. +## Testaus ennen julkaisua + +Konttia ei saa pushata registryyn ennen kuin se on validoitu. + +### 1. Aja testit kontin sisällä + +Testit on ajettava **kontin sisällä**, ei suoraan lokaalilla koneella. + +```bash +# OIKEIN — kontin sisällä +docker build -t ci-tyokalu:test . +docker run --rm -v "$(pwd):/repo" -w /repo ci-tyokalu:test bash -c 'bats tests/' + +# VÄÄRIN — lokaalit binäärit vs kontti +bats tests/ # eri bash/työkalut kuin kontissa +bashcov -- bats tests/ # eri ruby-versio kuin kontissa +``` + +Lokaali ympäristö (macOS, eri kirjastoversiot) poikkeaa aina kontista. +Testi voi mennä läpi lokaalissa mutta failata CI:ssä, tai päinvastoin. + +### 2. Fragile-testien seulonta (10x ajo) + +Aja koko testipaketti **10 kertaa peräkkäin** kontin sisällä ennen pushausta: + +```bash +for i in $(seq 1 10); do + echo "=== RUN $i ===" + docker run --rm -v "$(pwd):/repo" -w /repo ci-tyokalu:test \ + bash -c 'bats tests/' || exit 1 +done +``` + +Jos yksikin ajo failaa, kontissa on fragile testi — korjaa ennen pushausta. +Fragile testit syövät devaukseen käytettyä aikaa turhilla uusinta-ajoilla. + ## Mitä EI kannata tehdä - Älä lisää `workflow_call`-triggariä — CI-konttia ei koskaan buildata automaattisesti