Построить только по запросу, и передать имя ветви на Jenkins - PullRequest
0 голосов
/ 13 февраля 2019

В Jenkins настроены две сборки: buildA и buildB.Мои разработчики будут фиксировать и отправлять код на buildA, и я бы хотел запускать задания сборки на Jenkins на buildB всякий раз, когда выдается запрос на извлечение на репо buildA.

Мой Jenkinsfile дляbuildA довольно просто:

build job: 'buildA', parameters: [gitParameter(name: 'BRANCH', value: env.BRANCH_NAME)]

Это просто вызывает buildB (фрагмент кода Jenkinsfile ниже):

sh label: "Install dependencies", script: 'pip install -r requirements.txt'
sh label: 'Execute tests', script: "pytest --custom-parameter ${BRANCH}"'

Пока это прекрасно работает.Однако я заметил, что мои тесты выполняются довольно долго, и я хотел бы, чтобы тесты запускались только для запросов на извлечение.До сих пор я определил два варианта, и мне интересно, какой из них лучше:

Вариант 1: Насколько я понимаю, я могу прослушивать только события запроса на извлечение, установив этот параметр.приведенная ниже конфигурация с использованием refspec:

enter image description here.

Опция 2: Я также слышал, что вы можете использовать env.CHANGE_IDпроверить наличие событий запроса на извлечение.Поэтому мой конвейерный скрипт будет изменен на

script {
    if (env.CHANGE_ID) {
         sh label: "Install dependencies", script: 'pip install -r requirements.txt'
        sh label: 'Execute tests', script: "pytest --custom-parameter ${BRANCH}"'
                    }
      }

Мой вопрос: Какой из этих вариантов предпочтителен для получения имени ветви и построения только на запросах от Git?

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