Создайте DSL задания, которое создает новое задание в том же представлении.

Я пытаюсь использовать плагин DSL для создания новых рабочих мест в Jenkins. Есть ли способ указать представление при создании задания?

Например, у меня есть представление NewJobsView. Я хочу создать задание DSL с именем dsl-job, и оно создает новое задание "dsl-created-job1"

ДСЛ такой:

job {
    name 'dsl-created-job1'
    //view 'NewJobsView'
    //or view {...} to specify the view
}

person Aimee    schedule 25.02.2014    source источник
comment
Если вы создадите задание вручную с интерфейсом jenkins и посмотрите на конфигурацию, например. localhost:8080/‹job›/config.xml, если там есть раздел с подробным описанием представления, вы можете добавить его с помощью блока конфигурации в dsl github.com/jenkinsci/job-dsl-plugin/wiki/   -  person KeepCalmAndCarryOn    schedule 25.02.2014
comment
Вы используете плагин просмотра?   -  person KeepCalmAndCarryOn    schedule 25.02.2014
comment
Я не смог найти раздел просмотра в config.xml.   -  person Aimee    schedule 26.02.2014
comment
У меня установлен плагин вложенного просмотра. Я могу установить другие плагины, если это поможет.   -  person Aimee    schedule 26.02.2014
comment
XML-файл задания не содержит записей ни для одного из представлений, к которому он принадлежит, поэтому вы не сможете использовать для него DSL. Вы можете использовать REST API, чтобы добавить его в issues.jenkins-ci.org. /browse/JENKINS-8927 или, альтернативно, используйте представление на основе регулярных выражений и назовите свои задания соответствующим образом wiki.jenkins-ci.org/display/JENKINS/View+Job+Filters   -  person KeepCalmAndCarryOn    schedule 26.02.2014


Ответы (3)


Что, если вы сделаете:

def myJob=job{name('test1')}
def myJob2=job{name('test2')}
view {
  name('view1')
  jobs{
     name(myJob.name)
    name(myJob2.name)
  }   
}

Или даже используйте регулярное выражение в представлении.

ОБНОВИТЬ

Об обсуждении. Вложенное представление — это просто другой вид представления. В файле job config.xml нет ссылки на представление, потому что у jenkins другая абстракция: представление ссылается на задания.

person nerdioculos    schedule 25.10.2014

У меня это работает. Он создает задание, затем создает представление и добавляет задание в представление. Это решение воссоздает представление каждый раз. Вы можете добавить несколько заданий, используя имя («имя задания1») или имена («имя задания1», «имя задания2»). Вы также можете добавить существующие задания, ссылаясь на них по имени таким же образом.

job{
    name('DSL JOB')
    description('This is a Test Job')
    triggers{
        cron('H/20 7-20 * * 1-5')
    }    
}

view(type:ListView){
    name('DSL-JOBS')
    description('Test View of DSL Job')
    filterBuildQueue()
    filterExecutors()
    jobs{
        name('DSL JOB')
    }
    columns{
        status()
        weather()
        name()
        lastSuccess()
        lastFailure()
        lastDuration()
        buildButton()
        lastBuildConsole()
    }
}
person moglimcgrath    schedule 14.11.2014

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

Обходной путь:

  • удалить задание, созданное вашим DSL
  • скопируйте (или запомните) точное имя сгенерированного задания из DSL
  • перейдите к представлению, в котором вы хотите разместить новую работу
  • создайте новое пустое задание с таким же именем, как у нового созданного задания из DSL.
  • установите флажок Добавить в текущий вид при сохранении нового пустого задания.
  • запустите сценарий DSL, и он обновит ваше существующее (пустое) задание правильным содержимым, оставив его в нужном виде.

Вы также можете проверить этот ответ.

person bosch    schedule 19.10.2017