#jenkins #github #jenkins-pipeline #hook
#дженкинс #github #jenkins-конвейер #перехват
Вопрос:
В Jenkins у меня есть конвейер, настроенный для запуска при внесении изменений в любую ветку Github, начинающуюся с «release». Для этого я использую триггер перехвата Github и спецификатор ветки, соответствующий выражению «origin / release / *».
В нашем рабочем процессе git эти ветки не предназначены для вечной жизни, поэтому их часто удаляют.
Чего я ожидал, так это запуска конвейера при каждой фиксации каждой ветки выпуска. Однако конвейер также запускается при удалении ветки.
Как я могу игнорировать событие удаления ветки в моем конвейере? Я уже пытался не отправлять событие из Github при удалении ветки, но, похоже, для этого нет возможности. Опция события «push» отправляет событие при удалении ветки.
Спасибо!
Комментарии:
1. > В Jenkins у меня есть конвейер, настроенный для запуска при внесении изменений в любую ветку Github, начинающуюся с «release» — какое событие вы на самом деле настроили на webhook?
Ответ №1:
Мне удалось решить мою проблему. Вот как я начинал конвейер :
node('staging') {
GIT_PROJECT_NAME = "myrepo"
stage("clone repository") {
git credentialsId: "${GIT_PROJECT_NAME}",
url: "git@github.com:${GIT_PROJECT_NAME}.git"
scmVars = checkout scm
branch = scmVars.GIT_BRANCH
sh ('git checkout ${branch}')
}
Идея, стоящая за этим, заключалась в проверке ветки, из которой был запущен конвейер.
Однако это привело к запуску конвейера независимо от ветки.
Вот как я решил это :
node('staging') {
GIT_PROJECT_NAME = "myrepo"
stage("clone repository") {
scmVars = checkout scm
branch_tmp = scmVars.GIT_BRANCH
branch = branch_tmp.replace("origin/","")
git branch: "${branch}",
credentialsId: "${GIT_PROJECT_NAME}",
url: "git@github.com:${GIT_PROJECT_NAME}.git"
}
При этом мне не нужно «вручную» проверять правильную ветку.
Это решение работает, конвейер теперь запускается только при выполнении нажатия на ветки, соответствующие моему спецификатору ветки.
Ответ №2:
Это не имеет большого значения. Просто оставьте его завершенным. Кажется, не повредило.