Установите веб-крючок SonarQube в Jenkinsfile - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь создать многоотраслевой конвейер Jenkins, в котором при каждом нажатии на битбакет выполняется анализ SonarQube для этой ветви проекта.Дженкинс правильно создает новое задание для каждой ветви, и в SonarQube создается новый проект с добавлением имени ветви к имени проекта.

Проблема, с которой я сталкиваюсь, заключается в том, что когда SonarQube создает новый проект, веб-крючокчтобы сообщать о статусе Quality Gate не установлено по умолчанию, поэтому я должен вручную войти в каждый проект SonarQube и установить URL-адрес Webhook.Это проблема, когда моя команда делает много веток в день.

Есть ли способ указать в моем Jenksfile, что я хочу, чтобы проект SonarQube имел webhook?

stage('SonarQube Analysis') {
        steps {
            withSonarQubeEnv('Sonarqube Server') {
                script {
                    def sonarScanner = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'
                    sh "${sonarScanner}/bin/sonar-scanner " +
                    "-Dsonar.projectKey=ProjectName-${GIT_BRANCH} " +
                    "-Dsonar.projectName=ProjectName-${GIT_BRANCH} " +
                    "-Dsonar.projectVersion=0.0.0 " +
                    "-Dsonar.sources=**/src " +
                    "-Dsonar.java.binaries=**/build " +
                    "-Dsonar.exclusions=excluded_dirs/** " +
                    "-Dsonar.sourceEncoding=UTF-8"
                }
            }
            timeout(time: 5, unit: 'MINUTES') {
                script {
                    def qg = waitForQualityGate()
                    if (qg.status != 'OK') {
                        error "Pipeline aborted due to a quality gate failure: ${qg.status}"
                    }
                }
            }
        }
    }

В настоящее время время сборки моего Jenkins истекло через 5 минут.Когда веб-крючок установлен, для ответа требуется несколько секунд.У меня правильный URL-адрес веб-крючка, я просто хочу, чтобы его установил Jenkinsfile, а не я вручную.

РЕДАКТИРОВАТЬ: К сожалению, я не являюсь администратором в SonarQube, только мои проекты

1 Ответ

0 голосов
/ 30 января 2019

В качестве администратора в sonarqube перейдите на https://my-sonarqube.tld/admin/webhooks и настройте URL-адрес на https://my-jenkins-domain.tld/sonarqube-webhook/

Это должно применяться ко всем проектам.Если вы все еще не получаете доставки, проверьте последние доставки (опция на той же странице) и просмотрите ошибку.

У ваших jenkins должен быть действующий сертификат для установления безопасного соединения

См.также: https://docs.sonarqube.org/latest/project-administration/webhooks/

В качестве альтернативы, вы можете установить webhook для каждого вызова / сканирования проекта.Либо на cli -Dsonar.webhooks.project=https://my-jenkins-domain.tld/sonarqube-webhook/, либо в sonar-project.properties onar.webhooks.project=https://my-jenkins-domain.tld/sonarqube-webhook/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...