Задание Jenkins DSL, настраивающее ведомое устройство

У меня есть файл плагина DSL, который создает несколько заданий, таких как конвейер, свежие задания. Я хотел знать, каков будет синтаксис (только для dsl-файла, а не для jenkinsfile), что я могу запускать эти задания на конкретном агенте или ведомом устройстве. Пример кода приведен ниже. Я попытался использовать метку ('JenkinsEC2Slave'), но на самом деле она выполняет мое задание DSL на ведомом устройстве, а не то, которое создается DSL. Ярлыки взяты из плагина ec2 и должны запускаться по запросу.

pipelineJob('Build_Docker_Images') {
 label('JenkinsEC2Slave')   
configure {
     it / definition / lightweight(true)
}
triggers {
    scm('@midnight')
}
concurrentBuild(false)
parameters {
    stringParam('ECR_REPO', 'xxxxxxxxxxx.dkr.ecr.eu-west-2.amazonaws.com')

}
definition {
     cpsScm {
        scm {
            scriptPath ('ci-cd/pipelines/base_docker_images/Jenkinsfile')
            git {
                branches('*/master')
                remote {
                    url ('[email protected]:xxxxxxxxxx.git')
                    credentials ('jenkins-key')
                }
            }
        }
    }
}

person Ashish Mishra    schedule 06.11.2017    source источник


Ответы (1)


Вы можете использовать метки для выбора агентов сборки в Jenkins. label также является свойством JobDSL, которое позволяет указывать метки для задания. Цитата из DSL Viewer:

job('example') {
  label('x86 && ubuntu')
}
person StephenKing    schedule 07.11.2017
comment
это как-то не работает, я обновил свой вопрос образцом кода - person Ashish Mishra; 07.11.2017
comment
Обновлен синтаксис, нужно ли ставить выражение метки после scm или что - person Ashish Mishra; 07.11.2017
comment
это выглядит хорошо для фристайла, а не для работы с конвейером - person Ashish Mishra; 07.11.2017
comment
Тогда вы не будете определять агент в Job DSL, а будете использовать шаг node('label') конвейера. - person StephenKing; 08.11.2017
comment
Он должен работать, поскольку синтаксис правильный и приведен в документации DSL. Необходимо подтвердить, почему он не работает в DSL. - person Ashish Mishra; 08.11.2017