Лучшим вариантом для сканирования JS / TS является пользовательский канал.
Если вам не нужен код Java и вам просто нужно сканировать Javascript и Typescript , то использование сканера для CLI , вероятно, является лучшим выбором, и, более конкретно, использование канала сканирования проще всего настроить в Bitbucket Cloud. Вам вообще не нужно использовать Maven.
В вашем bitbucket-pipelines
YAML-файле удалите (или закомментируйте) ссылку на org.sonarsource.scanner
на шаге &buildArtifacts
:
mvn -e clean verify # org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
Затем создайте новый шаг для запуска конвейера:
- step: &buildAndTestSonarCloud
name: Analyze with SonarCloud
caches:
- node
- sonar
script:
- npm update && npm install
- pipe: sonarsource/sonarcloud-scan:0.1.5
variables:
SONAR_TOKEN: ${SONAR_TOKEN}
EXTRA_ARGS: '-Dsonar.sources=src/app'
SONAR_SCANNER_OPTS: -Xmx512m
DEBUG: "false"
Вам также может потребоваться расширить память, доступную для этого шага, примерно так:
definitions:
services:
docker:
memory: 2048
Наконец, вызовите ваш шаг:
pipelines:
default:
- step: *buildAndTestSonarCloud
- step: *buildArtifacts
Это должно работать. Вы должны быть настроены и работать на JS / TS.
Если вы также хотите запускать модульные тесты и , чтобы sonarcloud отслеживал ваше тестовое покрытие, добавьте это под строкой npm update
:
- npm run test -- --code-coverage --no-watch --no-progress --browsers=ChromeHeadlessNoSandbox
И эти EXTRA_ARGS
настроены для вашей файловой структуры:
'-Dsonar.tests=src -Dsonar.test.inclusions="**/testing/**,**/*.spec.ts" -Dsonar.typescript.lcov.reportPaths=coverage/lcov.info'
Это сработало для меня и должно обрабатывать полную конфигурацию.
Примечание. не буду смотреть код Java в вашем репозитории. Если вам нужно сделать код Java также просканирован, вам понадобится более сложная реализация Maven.