Проверка работ в конвейере Jenkins изменила ветвь функций - PullRequest
0 голосов
/ 20 ноября 2019

У меня есть следующий этап в моем конвейере jenkins, чтобы получить все ветви проекта. Я хотел бы запустить задание на сборку, если одна ветвь в проекте изменилась на измененную ветвь.

Сначала определите измененную ветвь, а затем извлеките эту конкретную ветку (я знаю, что webhook из bitbucket / github вДженкинс будет работать.).

оформить все ветки в проекте:

    stage ("Code pull"){
        steps{
         checkout([
            $class: 'GitSCM', branches: [[name: '*/*']],
            extensions: [[$class: 'CleanCheckout']], 
            userRemoteConfigs: [[  credentialsId:'bitbucket', url: 'my_git_repo']] 
            ])

Если я создаю новую ветку, что-то вроде этого работает отлично

        stage ("Code pull"){
        steps{
             git branch: "master",
             credentialsId: 'bitbucket',
             url: 'my_repo'
            }
    }

но я бы хотелпроверить любую измененную ветку в конкретном репозитории. Может быть, есть способ перебрать все ветви и что-то в этом роде:

 when { anyOf { branch 'feature-branch/*'; branch 'master' } }
    steps{
      ....git checkout the one with changes 
    }

Будут оценены любые подсказки. Спасибо за помощь,

С наилучшими пожеланиями, Джерн

1 Ответ

0 голосов
/ 20 ноября 2019

Предлагаю использовать многоотраслевой конвейер. Это упрощает работу, которую вы хотели бы сделать. Многоотраслевой конвейер отслеживает все ваши ветви и строит только те, которые были изменены. Вы даже можете отфильтровать ветви, которые не нуждаются в сборке (например, ветви функций).

enter image description here

После этого вы можете выбрать соответствующие ветви. У вас есть несколько вариантов для этого, теперь я приложил один образец. Если ветвь не является частью списка выбранных ветвей, конвейер не запустится.

enter image description here

В вашем Jenkinsfile вам просто нужно написатьdef scmVars = checkout scm. Эта команда клонирует репозиторий и проверяет ветку, которая была изменена.

...