2014-02-21 1 views
4

Я новичок в Дженкинсе. У меня есть требование, когда мне нужно выполнить часть задания на главном узле, а остальное - на подчиненном узле.Возможно ли запустить часть задания на ведущем, а другая часть на подчиненном устройстве?

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

Если нет, мне придется разбить его на две отдельные работы.

EDIT

В принципе у меня есть работа, которая проверяет исходный код из SVN, затем компилирует и создает банку файлы. После этого он создает мудрый установщик для этого приложения. Я хотел бы выполнить проверку и компиляцию исходного кода на главном (Linux) и делегировать установку Wise Installer на ведомое устройство Windows.

ответ

3

Это определенно легче сделать это с двумя отдельными заданиями; вы можете заставить главное задание запускать подчиненное задание (или наоборот).

Если вы публикуете файлы, которые необходимо добавить в инсталлятор, как сборку артефактов из основной сборки, вы можете вытащить их на подчиненное устройство через URL-адрес Jenkins и создать программу установки. Для этого используйте мастер-сборку «Архив артефактов» в сборке.

+0

@ gareth-bowles, я обновил свой вопрос с требованием. – sasankad

2

Вы можете использовать Multijob plugin, который добавляет идею фазы сборки, которая параллельно выполняет другие задания в качестве шага сборки. Вы по-прежнему можете использовать регулярные задания для построения фристайла и пост-сборки, а также

1

Pipeline Plugin позволяет записывать задания, выполняемые на нескольких подчиненных узлах. Вам даже не нужно создавать другие отдельные задания в Jenkins - просто напишите еще один оператор node в сценарии Pipeline, и этот блок будет запускаться только на назначенном узле. Вы можете указать метки, если хотите ограничить тип узла, на котором он запущен.

Например, этот сценарий трубопровода будет выполнять его часть на двух разных узлах:

node('linux') { 
    git url: 'https://github.com/jglick/simple-maven-project-with-tests.git' 
    sh "make" 
    step([$class: 'ArtifactArchiver', artifacts: 'build/program', fingerprint: true]) 
} 
node('windows && amd64') { 
    git url: 'https://github.com/jglick/simple-maven-project-with-tests.git' 
    sh "mytest.exe" 
} 

Некоторые больше информации на Pipeline plugin tutorial. (Обратите внимание, что он ранее назывался плагин Workflow.)

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