Я пытаюсь создать многоотраслевой конвейер 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, только мои проекты