Запуск конвейера Jenkins в любой ветке в битовой корзине, к которой был добавлен код - PullRequest
0 голосов
/ 09 мая 2018

У меня есть два репо (не мой выбор) для проекта. Структура выглядит так:

repo1
 |_folder
 |_tests
 |_src (repo2)
    |_index.html
    |_.git

 |_composer.json
 |_.git 

Я настроил конвейер Jenkins, который будет клонировать repo1, затем клонировать repo2 в src/ и, наконец, будет запускать composer install в repo1. Конвейерный скрипт для репозитория src выглядит следующим образом:

checkout([
        $class: 'GitSCM', 
        branches: [[name: '**']], 
        doGenerateSubmoduleConfigurations: false, 
        extensions: [[$class: 'RelativeTargetDirectory', 
        relativeTargetDir: 'src']], 
        submoduleCfg: [], 
        userRemoteConfigs: [[
            credentialsId: 'XXXX-XXXX-XXXX', 
            url: 'https://BITBUCKETURL'
        ]]
    ])

У меня также есть в разделе «Построить триггеры» флажок «Построить, когда изменение передается в Bitbucket» (с помощью плагина bitbucket). Кроме того, я настроил свой веб-крючок для отправки запроса Дженкинсу. Следует отметить, что мой webhook работает для проекта вольного стиля, ограниченного определенной веткой.

То, что я хочу сейчас сделать, - это тестировать только ветвь, в которую была нажата, а не каждую ветвь в триггере. Кроме того, у нас нет соглашения об именах для ветвей, поэтому они могут быть названы как угодно, кроме master. Как мне справиться с этим?

1 Ответ

0 голосов
/ 09 мая 2018

в моем проекте я использую это, и оно работает как надо (я уже не помню, почему мы решили так, но была проблема либо с плагином BB, либо с Push-хуками, поэтому мы используем простой планировщик):

`` `

checkout([
                $class                           : 'GitSCM',
                branches                         : [[name: '**']],
                doGenerateSubmoduleConfigurations: false,
                extensions                       : [[$class: 'CheckoutOption', timeout: 2]],
                submoduleCfg                     : [],
                userRemoteConfigs                : [
                        [
                                credentialsId: 'CREDTS',
                                url          : 'URL'
                        ]
                ]
        ])

`` `

Если я сравню это с вашим фрагментом кода, они в основном одинаковы, за исключением расширений. Кроме того, в самой работе мы настроили триггер сборки Poll Scm с * * * * * - проверять каждую минуту

...