Update README.md with additional SonarCloud badges and improve CI workflow for coverage reporting
Enhanced the README.md file by adding new SonarCloud badges for coverage, bugs, code smells, security rating, and maintainability rating. Updated the CI workflow to remove coverage collection from the test step, as it is now handled by SonarCloud, streamlining the process and ensuring accurate badge representation.
This commit is contained in:
+3
-33
@@ -62,8 +62,6 @@ jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-backend, build-frontend]
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-dotnet@v4
|
||||
@@ -72,44 +70,16 @@ jobs:
|
||||
- name: Restore
|
||||
working-directory: backend
|
||||
run: dotnet restore TeleWave.slnx
|
||||
- name: Test + coverage
|
||||
# Покрытие здесь не собираем: его считает джоба sonar своим прогоном (в формате opencover),
|
||||
# а бейдж покрытия в README берётся из SonarCloud.
|
||||
- name: Test
|
||||
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
|
||||
|
||||
# Анализ SonarCloud вместе с покрытием: один прогон собирает решение под сканером, гоняет тесты
|
||||
# и отправляет результат. Только push в main — декорация pull request'ов у SonarCloud завязана
|
||||
# на GitHub/GitLab, из Gitea она не работает, и анализ PR только засорял бы ветки в проекте.
|
||||
|
||||
Reference in New Issue
Block a user