Создайте Job DSL, который создает новую работу в том же представлении

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

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

DSL как это:

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

3 ответа

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

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

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

ОБНОВИТЬ

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

Я получил это работает. Он создает задание, затем создает представление и добавляет задание в представление. Это решение воссоздает вид каждый раз. Вы можете добавить несколько заданий, используя имя ('jobname1') или имена ('jobname1', 'jobname2'). Вы также можете добавить существующие задания, ссылаясь на них по имени таким же образом.

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()
    }
}

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

Временное решение:

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

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

Другие вопросы по тегам