Добрый день.
Пытаюсь выбрать платформу для проверки кода на качество.
Остановил свой выбор на SonarQube, т.к. проверяет по правилам, основанным на соглашениях и стандартах программирования, поддерживает все основные языки, которые мы используем.
Но есть один нюанс. Если тебе необходимо загружать туда достаточно (более 1млн.) строк кода, то решение становится достаточно дороговатым. Разброс цены там прям большой.
Может быть у кого-то был опыт выбора подобной системы ?
Формулировка такая что нужен прямой аналог SonarCube (будет он дешевле или вовсе opensource), который поможет сократить бюджет в данном направлении.
Заранее благодарю за ответы.
Плагины к нему пишутся просто. Большинство плагинов всего лишь импортирует сообщения запущенных во время билда чекеров - тот же valgrind или pvs-studio или istanbul.
man-in-the-middle, я не зря дал ссылку на то как в докере поднять SQ. поднимите локально и попробуйте.
SQ он под LGPL и ограничений там не должно быть. у нас в день за миллион строк в локалке туда пушится и оно вполне себе на подстольном компе работало. всеравно оно работает быстре чем билды на дженкенсе.
платить бы я им не стал - они на purchase inquery отвечали почти неделю :S
их коммерческие плагины не стОят той цены, что они за них просят.
то что они по "подписке" предлагают я не знаю и мне не интерестно - у нас все всегда внутри.
то что вам надо вы еще реально не знаете - если все правила врубить то в общемта на некоторых языках печаль наступает. и приходиться отключать много правил и ack-ать оставшиеся проблемы и начинать пасти отсутсвие новых проблем, и мееедленно разрешать выключенные.
rustler2000, а там нету бага с запуском самого сканера? Я пытаюсь его запустить $sonarqube_home/bin/run.sh который. А он мне пишет что не может получить доступ к jar-файлу. Может конечно я какие-то не верные действия произвожу. Тут ведь в любом случае запуск либо из под системы сборки как я понял либо cli. Но вот с последним какие-то проблемы (
rustler2000, понял. А саму проверку в таком случае, вы как запускаете ? Например есть php проект. Он где-то в репозитории, либо локально на тачке. Как файлы подтягиваете и запускаете сканер ?
man-in-the-middle, 1. jenkins определяет что надо пересобрать
2. вытягивает реп
3. запускает через Jenkinsfile сборку (где надо там подтягиваются зависимости)
4. там же в Jenkinsfile прописан запук сканера - sonar-scanner.properties в руте проекта лежит, и если надо там модули прописаны.
Тоесть по факту - коммит в реп проекта ведет к переcборке и новому анализу SQ (в SQ все акки прописаны, чтобы он письма счатья рассылал).