ci: add backend SonarQube analysis #23
Conventional commits / commits (pull_request) Successful in 27s
Backend security / security (pull_request) Successful in 1m14s
Backend verify / verify (pull_request) Successful in 2m39s
Backend security / security (push) Successful in 8s
Backend verify / verify (push) Successful in 4m26s
Conventional commits / commits (pull_request) Successful in 27s
Backend security / security (pull_request) Successful in 1m14s
Backend verify / verify (pull_request) Successful in 2m39s
Backend security / security (push) Successful in 8s
Backend verify / verify (push) Successful in 4m26s
This commit was merged in pull request #24.
This commit is contained in:
@@ -58,9 +58,9 @@ npm run verify
|
||||
```
|
||||
|
||||
Он запускает zero-warning lint,
|
||||
application/test typechecks, Jest и build. `npm run lint:fix` — отдельная
|
||||
записывающая команда, `npm run test:cov` — диагностика без общего числового
|
||||
threshold. `npm run test:e2e` отдельно проверяет все HTTP suites на новых базах
|
||||
application/test typechecks, Jest с покрытием и build. `npm run lint:fix` — отдельная
|
||||
записывающая команда. `npm run test:cov` также доступен отдельно; общего числового
|
||||
threshold нет. `npm run test:e2e` отдельно проверяет все HTTP suites на новых базах
|
||||
и соответствие генерируемого OpenAPI настроенному приложению. Для полной backend-проверки
|
||||
выполните обе команды.
|
||||
|
||||
@@ -102,6 +102,38 @@ Required checks настраиваются отдельно в Gitea: налич
|
||||
runtime-валидацию. В обычном коде нужны инициализация или сужение типа
|
||||
после проверки значения.
|
||||
|
||||
## SonarQube
|
||||
|
||||
Проект `wealthledger-backend` на `https://sonarqube.ksv741.keenetic.pro`
|
||||
использует `sonar-project.properties`. Анализируются исходники `src`; unit specs
|
||||
и HTTP specs учитываются как тесты. Внешние T-Bank proto contracts исключены,
|
||||
generated Prisma client находится за пределами `sonar.sources`.
|
||||
|
||||
`npm run verify` запускает unit tests с покрытием один раз. Jest штатно создаёт
|
||||
`coverage/lcov.info`; scanner импортирует этот отчёт. Покрытие HTTP/e2e tests
|
||||
в него не входит, сами HTTP suites остаются обязательным отдельным шагом CI.
|
||||
|
||||
Создайте в SonarQube проект с ключом `wealthledger-backend`, а в Gitea → backend →
|
||||
Settings → Actions → Secrets добавьте `SONAR_TOKEN` с правом анализа этого проекта.
|
||||
Токен не сохраняется в файлах. Community Edition 9.9.8 получает анализ только
|
||||
при push в `develop`, после успешных `verify` и SQLite/e2e checks. CI ожидает
|
||||
Quality Gate; отрицательный результат или ошибка scanner завершает job с ошибкой.
|
||||
PR и другие ветки проходят штатные проверки без отправки анализа.
|
||||
Переименование основной ветки SonarQube не требуется; `sonar.branch.name` не задаётся.
|
||||
|
||||
Runner должен поддерживать Docker actions и иметь доступ к GitHub, Docker Hub
|
||||
и HTTPS-адресу SonarQube с действующим сертификатом для этого имени.
|
||||
Официальный Docker action закреплён на commit версии 2.3.0, как в frontend.
|
||||
`tsconfig.sonar.json` содержит совместимые со старым анализатором настройки
|
||||
модулей и decorators с target ES2022, без новых compiler options приложения.
|
||||
Штатная компиляция приложения остаётся на ES2023.
|
||||
После обновления сервера пересмотрите scanner и необходимость отдельного tsconfig.
|
||||
|
||||
Локально после `nvm use --silent`, `npm ci` и генерации Prisma client выполните
|
||||
`npm run verify`, затем `sonar-scanner` с совместимым SonarScanner CLI и
|
||||
`SONAR_TOKEN` в окружении. Первый запуск CI после merge должен подтвердить
|
||||
загрузку отчёта и покрытия: локальные проверки не доказывают доступность сервера.
|
||||
|
||||
## Документация
|
||||
|
||||
- [AGENTS: правила и источники](AGENTS.md)
|
||||
|
||||
Reference in New Issue
Block a user