diff --git a/.gitea/scripts/bats-coverage.sh b/.gitea/scripts/bats-coverage.sh index 5334ae9..43c76d9 100755 --- a/.gitea/scripts/bats-coverage.sh +++ b/.gitea/scripts/bats-coverage.sh @@ -9,12 +9,9 @@ REPORT_DIR="${2:-}" HAS_COVERAGE=false COVERAGE_SRC="" -for candidate in /data/scripts/coverage /data/coverage; do - if docker run --rm -v "$WORKSPACE_VOLUME":/data alpine sh -c "[ -d \"$candidate\" ] && ls -A \"$candidate\" | grep -q ." 2>/dev/null; then - COVERAGE_SRC="$candidate" - break - fi -done +if docker run --rm -v "$WORKSPACE_VOLUME":/data alpine sh -c '[ -d /data/coverage ] && ls -A /data/coverage | grep -q .' 2>/dev/null; then + COVERAGE_SRC="/data/coverage" +fi if [ -n "$COVERAGE_SRC" ]; then mkdir -p "$REPORT_DIR/coverage" diff --git a/.gitea/workflows/build-feature.yml b/.gitea/workflows/build-feature.yml index a554e1e..b6c9b9a 100644 --- a/.gitea/workflows/build-feature.yml +++ b/.gitea/workflows/build-feature.yml @@ -58,7 +58,7 @@ jobs: --entrypoint bash ${{ inputs.bats-image }} \ -c 'apk add -q lsof python3 jq curl ruby && cd /data && \ gem install bashcov -v 3.3.0 2>&1 | tail -1 && \ - bashcov --root /data/scripts/ -- bats tests/' \ + bashcov -- bats tests/' \ > "reports/${GITHUB_SHA:0:8}/bats/results.txt" 2>&1 BATS_EXIT=$? bash .ci/.gitea/scripts/bats-coverage.sh bats-workspace "reports/${GITHUB_SHA:0:8}/bats" diff --git a/.simplecov b/.simplecov new file mode 100644 index 0000000..4ee20ec --- /dev/null +++ b/.simplecov @@ -0,0 +1,5 @@ +SimpleCov.start do + add_filter '/tests/' + add_filter '/node_modules/' + add_filter '/git-pages/' +end diff --git a/docs/ci-pipeline-practices.md b/docs/ci-pipeline-practices.md index ba08ad5..0115681 100644 --- a/docs/ci-pipeline-practices.md +++ b/docs/ci-pipeline-practices.md @@ -110,3 +110,16 @@ Avainkomponentit: - Rinnakkaiset jobit (bats + cucumber) — tuloksia saa heti kun valmistuu - Jokainen testisetti omassa jobissaan - Finalize/build voi kerätä yhteenvedon (ei julkaista summarya jos kenelläkään ei ole linkkiä) + +## 7. Inline Logic Threshold + +Logiikka workflow YAML:ssa on hauras: YAML:n sisennys, heredocit ja +kenoviivat tuottavat helposti toimimattomia steppejä. + +**Kynnys siirtää scriptiksi:** heti kun steppiin tulee ehtoja, silmukoita, +tai yli 3 riviä inline-koodia, siirrä omaksi scriptikseen `.gitea/scripts/`- +kansioon. + +Esimerkki: coverage-datan purku ja navigointi-indexin luonti oli aluksi +inline-heredocina workflow YAML:ssa. Siirto omaan `bats-coverage.sh`-scriptiin +teki siitä luettavan, testattavan ja muokattavan ilman YAML-muotoiluriskejä.