Odpowiedz

1

Jeśli korzystasz z repozytorium git, dodaj plik o nazwie Jenkinsfile w katalogu głównym repo. Powinno to zawierać twoje zadanie dsl.

16

Powinieneś użyć pipelineJob.

Przykład:

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

Wierzę, że to pytanie jest pytaniem coś jak używać DSL zadanie, aby stworzyć pracę rurociągu, który odwołuje się do Jenkinsfile dla projektu i nie łączą się z tworzenia nowych miejsc pracy ze szczegółowym definicje krokowe, jak podano w odpowiedziach do tej pory. Ma to sens: konfiguracja tworzenia i konfiguracji metadanych Jenkinsa (opis, wyzwalacze itp.) Może należeć do administratorów Jenkins, ale zespół programistów powinien mieć kontrolę nad tym, co faktycznie robi ta praca.

@meallhour, czy poniżej tego, czego szukasz? (Działa jak w Job 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' << '' }) 
     } 
    } 
    } 
} 

Ref pipelineJob DSL Praca: https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob i siekać daleko na nim na http://job-dsl.herokuapp.com/ zobaczyć wygenerowany config.

Ten przykład zadziałał dla mnie. Oto kolejny przykład na podstawie tego, co pracował dla mnie:

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

Jeśli budować rurociąg pierwszy za pośrednictwem interfejsu użytkownika, można użyć pliku config.xml oraz dokumentacji Jenkins https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob stworzyć swoją pracę rurociągu.

Powiązane problemy