From 2165bfc4592ba2fe1e362f36c68e655cdc8a9cb3 Mon Sep 17 00:00:00 2001 From: Leonid Pershin Date: Sat, 25 Jul 2026 20:20:17 +0300 Subject: [PATCH] Add coverage badge to README and update test workflow: include coverage badge in README for CI visibility and enhance test workflow to generate coverage reports and update the badge on main branch pushes. --- .gitea/workflows/test.yml | 34 +++++++++++++++++++++++++++++++++- README.md | 1 + 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 69f00d7..20e09c5 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -9,15 +9,47 @@ jobs: backend-tests: runs-on: ubuntu-latest container: mcr.microsoft.com/dotnet/sdk:10.0 + permissions: + contents: write steps: - uses: actions/checkout@v4 - name: Restore working-directory: backend run: dotnet restore TeleWave.slnx - - name: Test + - name: Test + coverage working-directory: backend run: > dotnet test TeleWave.slnx -c Release --no-restore + --collect:"XPlat Code Coverage" + --results-directory ./coverage --logger "console;verbosity=normal" + + # Бейдж покрытия обновляем только для main (не для PR/форков): генерируем SVG и + # force-пушим в отдельную orphan-ветку badges — README ссылается на её raw-URL. + - name: Coverage badge + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + working-directory: backend + env: + TOKEN: ${{ secrets.COVERAGE_TOKEN || secrets.GITEA_TOKEN }} + run: | + dotnet tool install --global dotnet-reportgenerator-globaltool + export PATH="$PATH:$HOME/.dotnet/tools" + reportgenerator \ + "-reports:coverage/**/coverage.cobertura.xml" \ + "-targetdir:coverage/badges" \ + "-reporttypes:Badges" \ + "-assemblyfilters:+TeleWave.Domain;+TeleWave.Application" \ + "-classfilters:-System.*" + BADGE=coverage/badges/badge_linecoverage.svg + test -f "$BADGE" || { echo "badge not generated"; exit 1; } + WORK=$(mktemp -d) + cp "$BADGE" "$WORK/coverage.svg" + cd "$WORK" + git init -q -b badges + git add coverage.svg + git -c user.name=gitea-actions -c user.email=actions@local \ + commit -q -m "coverage badge [skip ci]" + git push -f \ + "https://gitea-actions:${TOKEN}@gitea.hsrv.site/mrleo1nid/TeleWave.git" badges diff --git a/README.md b/README.md index 987a443..db3ef84 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![build](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions/workflows/build.yml/badge.svg)](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=build.yml) [![tests](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions/workflows/test.yml/badge.svg)](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=test.yml) +[![coverage](https://gitea.hsrv.site/mrleo1nid/TeleWave/raw/branch/badges/coverage.svg)](https://gitea.hsrv.site/mrleo1nid/TeleWave/actions?workflow=test.yml) **TeleWave** — сервис онлайн-каналов: пользователи смотрят сетку каналов, видео отдаётся из хранилища на сервере, админ управляет каналами и пользователями.