Плохой код — дорогой код. Мы используем SonarQube в CI/CD, чтобы ловить ошибки, уязвимости и запахи кода ещё до релиза. Ниже — готовая сборка для 1С (BSL) в Docker, примеры интеграции и пошаговый старт.
Запусти docker-compose up -d — и через пару минут SonarQube готов.
sonar-bsl-plugin-community + анализ веток в Community.
Команде проще стартовать и настраивать правила.
Адекватные параметры Java и системные лимиты для крупных конфигураций.
Настройка «с нуля» — квест: совместимость плагинов BSL, анализ веток в Community, параметры JVM, системные лимиты. Проще взять готовое:
git clone https://github.com/Daabramov/Sonarqube-for-1c-docker.git
cd Sonarqube-for-1c-docker
docker-compose up -d
Репозиторий: Daabramov/Sonarqube-for-1c-docker. После запуска SonarQube доступен на http://localhost:32772 (логин/пароль — admin:admin).
Технический долг — цена «быстрых» решений. Как у дома с кривым фундаментом: сначала быстро, потом дорого. Анализатор помогает держать фундамент прочным: меньше багов, проще онбординг, быстрее фичи.
Каждый push запускает анализ: ловим проблемы на этапе разработки, а не после релиза.
sonar:
stage: test
image: sonarsource/sonar-scanner-cli:latest
script:
- sonar-scanner -Dsonar.projectKey=my-1c -Dsonar.sources=src -Dsonar.host.url=http://sonar:9000 -Dsonar.login=$SONAR_TOKEN
only:
- merge_requests
- main
В open-source проекте сборки 1С мы используем похожий шаг: запускается сканер, результаты видны в MR.
sonar.projectKey=my-1c
sonar.projectName=My 1C Project
sonar.sourceEncoding=UTF-8
sonar.sources=./src
sonar.inclusions=**/*.bsl,**/*.os
sonar.exclusions=**/vendor/**,**/build/**
sonar.host.url=http://localhost:32772
sonar.login=${SONAR_TOKEN}
Расширь правила под свой гайд: профиль качества, «блокирующие» проблемы, coverage и пороги допуска.
Подойдёт рабочая станция или сервер. Проверьте выделенную память (особенно в WSL2).
git clone https://github.com/Daabramov/Sonarqube-for-1c-docker.git
cd Sonarqube-for-1c-docker
docker-compose up -d
Перейдите на http://localhost:32772, войдите admin:admin, смените пароль.
Создайте проект, добавьте sonar-project.properties, запустите сканер в CI/CD.
Что помогает держать код в чистоте и снижать технический долг? Делитесь опытом 👇