Дженкинс и несколько веток? - PullRequest
       31

Дженкинс и несколько веток?

9 голосов
/ 02 сентября 2011

Я работаю над заданием Дженкинса, и мне нужно, чтобы он создал две ветви в одном и том же хранилище. Как я могу это сделать?

Ответы [ 4 ]

5 голосов
/ 03 сентября 2011

Учитывая, что Jenkins не может выполнить одно задание в двух версиях репозитория (то есть что бы получать содержимое двух разных веток), я бы предложил сделать два разных задания, по одному для каждой ветки (с помощью плагина Jenkins Git ).

3 голосов
/ 30 сентября 2015

Этот плагин создаст для вас каждую ветку: https://wiki.jenkins -ci.org / display / JENKINS / Multi-Branch + Project + Плагин .

Вы также можете использовать GitLab(https://wiki.jenkins -ci.org / display / JENKINS / GitLab + Plugin ) / GitHub (https://wiki.jenkins -ci.org / display / JENKINS / GitHub + Plugin ) плагины,которая может инициировать сборку при коммите кода, а затем скомпилирует ветвь, к которой был добавлен код.

3 голосов
/ 03 сентября 2011

Вы спрашиваете, хотите ли вы построить две ветви в одном и том же извлеченном каталоге рабочего пространства?

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

Этот единственный скрипт будет вызываться из одного задания Jenkins.

Например, ваш скрипт сборки будет выглядеть примерно так:

git clone url:repo.git workspace
cd workspace 
git checkout branchA
make
# now you're done building branchA
# next checkout branchB and run make
git checkout branchB
make
# now you are done building branchB

Каждая проверка установит файлы для нужной ветви.И это будет строить его соответственно.Однако, поскольку они будут совместно использовать один и тот же каталог рабочей области, это может означать, что новые файлы будут создаваться первой сборкой, которая затем будет присутствовать при запуске второй сборки.Я предполагаю, что это тот эффект, который вам нужен, потому что вы хотели построить две ветви в одном каталоге рабочего пространства.

Обновление: используйте git clean -xdf, если вы хотите иметь новое рабочее пространство для следующей сборки.

0 голосов
/ 10 января 2012

Если вам нужно вышеупомянутое И вам нужна расширенная функция, при которой Дженкинс строит любую новую ветвь и объединяет ее, чтобы справиться ТОЛЬКО в случае успешной сборки (т. Е. Вам нужны две основные ветки и две сборки), вы можете подумать о разветвлении.репозиторий и объединение изменений между репозиториями (git создан для такого рода вещей, хотя я еще не совсем дошел до этой точки использования).

Таким образом, у вас в основном будет 2 репозитория git и две сборки jenkins, и выМожно настроить плагин git для сборки из любой ветки в каждом репозитории и объединить с мастером этого репозитория.Таким образом, каждый репозиторий действует как ветвь в этой конфигурации.

Это наш план, когда мы начинаем новую линию выпуска 2.x с нашей линии выпуска 1.x, во всяком случае, это форк.Мы увидим, как это работает на практике.

позже, Дин

...