ответ

5

В работе DSL, трубопровод до сих пор называется рабочим процесс, см workflowJob.

Следующий выпуск DSL для работы будет содержать некоторые улучшения для трубопроводов, например. JENKINS-32678.

1

Если вы используете git repo, добавьте файл под названием Jenkinsfile в корневой каталог вашего репо. Это должно содержать вашу работу dsl.

16

Вы должны использовать pipelineJob.

Пример:

pipelineJob('Pipeline') { 
    definition { 
    cps { 
     sandbox() 
     script(""" 
     node { 
      stage('init') { 
      build 'Pipeline-init' 
      } 
      stage('build') { 
      build 'Pipeline-build' 
      } 
     } 
     """.stripIndent())  
    } 
    } 
} 
4

Я считаю, что этот вопрос с просьбой что-то, как использовать DSL работы, чтобы создать работу трубопровода, который ссылается на Jenkinsfile для проекта, и не сочетать создание рабочих мест с подробного как было дано в ответах на сегодняшний день. Это имеет смысл: создание Jenkins и создание метаданных (описание, триггеры и т. Д.) Могут принадлежать администраторам Jenkins, но команда разработчиков должна иметь контроль над тем, что на самом деле делает работа.

@meallhour, это ниже, что вы после? (Работает как на работе DSL 1.64)

pipelineJob('DSL_Pipeline') { 

    def repo = 'https://github.com/path/to/your/repo.git' 

    triggers { 
    scm('H/5 * * * *') 
    } 
    description("Pipeline for $repo") 

    definition { 
    cpsScm { 
     scm { 
     git { 
      remote { url(repo) } 
      branches('master', '**/feature*') 
      scriptPath('misc/Jenkinsfile.v2') 
      extensions { } // required as otherwise it may try to tag the repo, which you may not want 
     } 

     // the single line below also works, but it 
     // only covers the 'master' branch and may not give you 
     // enough control. 
     // git(repo, 'master', { node -> node/'extensions' << '' }) 
     } 
    } 
    } 
} 

Ссылка РАБОЧЕГО МЕСТО DSL pipelineJob: https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob и поредактируют у него на http://job-dsl.herokuapp.com/, чтобы увидеть сгенерированный конфиг.

Этот пример работал на меня. Вот еще один пример, основанный на том, что работает для меня:

pipelineJob('Your App Pipeline') { 

    def repo = 'https://github.com/user/yourApp.git' 
    def sshRepo = '[email protected]:user/yourApp.git' 

    description("Your App Pipeline") 
    keepDependencies(false) 

    properties{ 

    githubProjectUrl (repo) 
    rebuild { 
     autoRebuild(false) 
    } 
    } 

    definition { 

    cpsScm { 
     scm { 
     git { 
      remote { url(sshRepo) } 
      branches('master') 
      scriptPath('Jenkinsfile') 
      extensions { } // required as otherwise it may try to tag the repo, which you may not want 
     } 
     } 
    } 
    } 

Если построить трубопровод первый через пользовательский интерфейс, вы можете использовать файл config.xml и документацию Jenkins https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob создать работу трубопровода.

Смежные вопросы