2016-03-23 3 views
1

Я использую Atlasian's Stash, который размещен мной. Там у меня есть git post commit hook, который запускает мою машину Jenkins. В настоящее время он работает с запросами на pull (каждый раз, когда запрос на растяжение создается/обновляется, hook будет вызывать Jenkins, который будет строить). Для этого я использую плагин управления исходным кодом, и там у меня есть pr как имя и +refs/pull/*:refs/remotes/origin/* как refspec. Я также выбрал ветку для сборки, которая составляет develop.Сделать Jenkins построить конкретную ветку после git post commit hook

Теперь я хочу иметь возможность локально создавать ветвь релиза, например release/1.0, добавить к ней некоторые изменения. Затем я хочу нажать это на мой сервер Stash, который вызовет крючок и позволит Jenkins построить ветвь релиза. Моя проблема в том, что задание запускается каждый раз, когда происходит фиксация, в любой ветви.

Как я могу сделать это, только когда я нажимаю фиксацию на мою ветвь релиза? Обратите внимание, что в будущем я хочу иметь больше ветвей выпуска, поэтому могут быть release/1.0, release/1.1 и release/2.0 и т. Д., Поэтому я не могу жестко закодировать имя ветки в Jenkins (я хочу иметь эту динамику).

ответ

0

Хорошо, мой коллега помог мне решить эту проблему. Мы исправили это, оставив поле имени пустым, а в refspec помещаем +refs/heads/release/*:refs/remotes/origin/release/*, а в качестве ветки для построения мы помещаем origin/release/*.

0

Для того, чтобы инициировать только на фиксации в вашей ветви освобождения, достаточно указать, что ваш refspec в плагине управления исходным кодом находится в +refs/pull/*:refs/remotes/origin/release/*.

+0

Вы бы так подумали, но я нажал ветку с именем * test_branch_to_remove *, а затем эта работа началась для этой ветви, когда она ничего не должна делать. –

Смежные вопросы