Как я могу запустить другую работу из конвейера jenkins (jenkinsfile) с помощью плагина GitHub Org?

Как я могу запустить сборку другого задания из Jenkinsfile?

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

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

Update:

stage 'test-downstream'
node {
     def job = build job: 'some-downtream-job-name'
}

Тем не менее, при выполнении я получаю сообщение об ошибке

  

Параметризованное задание с именем some-downtream-job-name не найдено

Я уверен, что это задание существует в jenkins и находится в той же папке организации, что и текущая. Это еще одна работа, у которой есть свой собственный Jenkinsfile.

Обратите внимание, что этот вопрос относится к организационному плагину GitHub. который автоматически создает и поддерживает задания для каждого репозитория и филиала из вашей организации GitHub.

84 голоса | спросил sorin 30 MarpmWed, 30 Mar 2016 14:01:43 +03002016-03-30T14:01:43+03:0002 2016, 14:01:43

3 ответа


0

Прежде всего, это пустая трата слота исполнителя, чтобы обернуть шаг build в node. Ваш вышестоящий исполнитель просто бездействует без причины.

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

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

Таким образом, то, что вы хотели написать, вероятно,

if (env.BRANCH_NAME == 'master') {
    build '../other-repo/master'
}
ответил Jesse Glick 31 MarpmThu, 31 Mar 2016 14:23:15 +03002016-03-31T14:23:15+03:0002 2016, 14:23:15
0

В дополнение к вышеупомянутым ответам: я хотел начать работу с простого параметра, переданного во второй конвейер, и нашел ответ на https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow .

Так что я использовал:

 stage ('Starting ART job') {
    build job: 'RunArtInTest', parameters: [[$class: 'StringParameterValue', name: 'systemname', value: systemname]]
}
ответил FrankIJ 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 23 Sep 2016 11:40:23 +0300 2016, 11:40:23
0

Команда build в конвейере предназначена для запуска других заданий в jenkins.

Пример на github

Работа должна существовать в Jenkins и может быть параметризована. Что касается ветви, я думаю, что вы можете прочитать его из мерзавца

ответил Flo 30 MarpmWed, 30 Mar 2016 14:23:12 +03002016-03-30T14:23:12+03:0002 2016, 14:23:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132