DevOps на Openshift: Использование SonarQube из Jenkins pipeline
Blogs
Эта статья является продолжением DevOps на Openshift: Автоматизация создания проектов Openshift из Jenkins Pipeline.
SonarQube - незаменимый инструмент для проверки чистоты и правильности исходного кода. Продукт не только проводит глубокий анализ кода, но и предоставляет подробные отчёты с рекомендациями по исправлению. Результаты обработки можно отправлять заинтересованным пользователям на электронную почту. Прямо из коробки доступны большое количество дефолтных расширяемых профилей с правилами для различных языков программирования.
Благодаря API анализ кода можно осуществлять через удалённые вызовы, например сборкой Maven. Для проведения анализа кода из pipeline и получения его результатов в Jenkins и SonarQube потребуется сделать ряд настроек:
- В Jenkins установить плагин SonarQube Scanner for Jenkins
- Настроить установленный плагин, оставив поле Server authentication token пустым. В качестве Server URL использовать адрес сервиса в Openshift (в случае если Jenkins и SonarQube установлены в одном проекте)
- В SonarQube добавить WebHook. В качестве URL использовать имя сервиса в Openshift.
- Вызов из pipeline можно делать следующим образом
stage('Code Analysis') { steps { withSonarQubeEnv('Sonar') { sh "${mvnCmd} sonar:sonar -Dsonar.host.url=http://sonarqube:9000 -DskipTests=true" } } } stage("Quality Gate") { steps { timeout(time: 1, unit: 'HOURS') { script { withSonarQubeEnv('Sonar') { sleep 20 println("QG: start") def qg = waitForQualityGate() println("QG: ${qg.status}") if (qg.status != 'OK') { error "Pipeline aborted due to quality gate failure: ${qg.status}" } } } } } }
Обратите внимание, что в этой строчке withSonarQubeEnv('Sonar') мы используем имя экземпляра SonarQube, настроенного выше в Jenkins.
Всё это даёт нам возможность детальной проверки кода и прерывание pipeline, если проверка провалилась.
Как итог мы получаем мощный инструмент для детального разбора кода, который запускается прямо на платформе Openshift и достаточно легко интегрируется с CI/CD процессами предприятия.
Благодарности автору этой статьи.
Дальше-больше...
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.