Настроить или создать работу hudson автоматически

Есть ли способ создать новую работу Хадсона еще одним заданием Хадсона, основанным на одном из предыдущих Рабочих мест?

Например, если мне нужно создать новую группу заданий один за другим, автоматически создайте 4 задания с аналогичной конфигурацией с другим параметром

В основном такие шаги

  • создать ветвь SVN. Я могу вызвать команду svn cp и сделать ее параметризованной с помощью script
  • Создайте некоторую сборку на основе нового имени svnbranch
  • Позже пометьте его

Или другое слово, мне нужно клонировать предыдущую работу и указывать новое название ветки, где когда-либо $Branch приходит в новое задание.

Спасибо

Ответ 1

Вы можете попробовать Hudson Remote API для этой задачи (настройка проекта Hudson).

См. этот учебник, например, и помните, что вы можете легко отобразить справку:

java -jar hudson-cli.jar -s http://your_Hudson_server/ help

alt text

Итак, чтобы скопировать задание:

java -jar hudson-cli.jar -s http://your_Hudson_server/ copy-job myjob copy-myjob

Ответ 2

Вид уже рассмотрен в других ответах, но для простого способа скопировать файл config.xml:

curl --user USER:PASS -H "Content-Type: text/xml" -s  
--data-binary "@config.xml" "http://hudsonserver:8080/createItem?name=newjobname"

Ответ 3

Вы можете использовать groovy system script следующим образом:

def jenkins = hudson.model.Hudson.instance
def template = jenkins.getItem("MyTemplate")
def job = jenkins.copy(template,"MyNewJob")
job.scm = new hudson.scm.SubversionSCM("http://base/branches/mybranche")
job.save()

Ответ 4

Кажется, есть плагин для дженкинсов.

https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin

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

Ответ 5

def jenkins = hudson.model.Hudson.instance
def template = jenkins.getItem("MyTemplate")
def job = jenkins.copy(template,"MyNewJob")
job.save()

Я использовал это сейчас, мне нужно изменить значения параметров MyNewJob с помощью Groovy, как я это сделаю?

ex У меня есть параметр, называемый "Build_BranchName", а по умолчанию -//perforce/mybranch Я должен изменить его на // неволей/mynewbranch

Ответ 6

У вас есть опция, которую только что предоставил VonC (что, вероятно, самый безопасный способ, но вы также можете пойти другим маршрутом, просто создав новый каталог в {Hudson_Home}\jobs (имя каталога будет именем задания) и Скопируйте измененный файл config.xml там. Модификация в основном будет URL-адресом SVN. Вы должны проверить xml из задания, которое вы копируете. Вам нужно узнать, как вы изменяете xml файл с помощью script, но это вторичная проблема.

К сожалению, вам нужно либо перезапустить Hudson, либо принудительно перезагрузить конфигурацию. (перейдите на страницу http://:/reload, чтобы перезагрузить конфигурацию).

Ответ 7

Если вы захотите использовать GIT (как и я, зеркалирование основного SVN-репо, на сервер Hudson/Jenkins, и он отлично работает). .. вы могли бы попробовать Стивена Хабермана post-receive-hudson:

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

В любом случае, что script может дать вам новые подсказки о том, как дистанционно управлять Jenkins (Hudson).