Событие перехвата Github при удалении ветви приводит к сбою задания Jenkins - PullRequest
0 голосов
/ 02 марта 2019

В Jenkins у меня есть конвейер, настроенный для запуска при внесении изменений в любую ветку Github, начиная с "release"Для этого я использую триггер Github и спецификатор ветви, соответствующий выражению "origin / release /*".

. В нашем рабочем процессе git эти ветви не предназначены для вечной жизни, поэтому оничасто удаляется.

Я ожидал, что конвейер будет запускаться при каждом коммите каждой ветки релиза.Однако конвейер также запускается при удалении ветки.

Как я могу игнорировать событие удаления ветки в моем конвейере? Я уже пытался не отправлять событие из Github, когда веткаудален, но, похоже, что нет возможности для этого.Параметр «push» отправляет событие при удалении ветки.

Спасибо!

1 Ответ

0 голосов
/ 04 марта 2019

Мне удалось решить мою проблему.Вот как я начинал конвейер:

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"
    }

При этом мне не нужно «вручную» проверять правильностьветка.Это решение работает, теперь конвейер запускается только при нажатии на ветви, соответствующие моему спецификатору ветви.

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