Antwort

5

In Job DSL, Pipeline noch Workflow genannt wird, siehe workflowJob.

Die nächste Job-DSL-Version enthält einige Verbesserungen für Pipelines, z. JENKINS-32678.

1

Wenn Sie ein Git Repo verwenden, fügen Sie eine Datei namens Jenkinsfile im Stammverzeichnis Ihres Repo. Dies sollte Ihre Arbeit dsl enthalten.

16

Sie sollten pipelineJob verwenden.

Beispiel:

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

Ich glaube, diese Frage etwas wie fragt den Job DSL verwenden, um eine Pipeline Job zu erstellen, die die Jenkinsfile für das Projekt verweist, und kombiniert nicht die Schaffung von Arbeitsplätzen mit dem detaillierten Schrittdefinitionen, wie sie in den bisherigen Antworten angegeben wurden. Das macht Sinn: Die Jenkins-Job-Erstellung und die Metadaten-Konfiguration (Beschreibung, Trigger usw.) können Jenkins-Administratoren gehören, aber das Entwickler-Team sollte die Kontrolle darüber haben, was der Job tatsächlich macht.

@meallhour, ist das nach was Sie suchen? (Funktioniert wie bei 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 der Job DSL pipelineJob: https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob und hacken es auf http://job-dsl.herokuapp.com/ weg, um die erzeugte Konfigurations zu sehen.

Dieses Beispiel funktionierte für mich. Hier ist ein weiteres Beispiel auf das, was für mich gearbeitet:

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

Wenn Sie die Pipeline zunächst über die Benutzeroberfläche erstellen, können Sie die Datei config.xml verwenden und die Jenkins Dokumentation https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob auf Ihre Pipeline Job zu erstellen.

Verwandte Themen