risposta

5

In Job DSL, gasdotto è ancora chiamato flusso di lavoro, vedere workflowJob.

La prossima versione di Job DSL conterrà alcuni miglioramenti per le condotte, ad es. JENKINS-32678.

1

Se si utilizza un repository git, aggiungere un file chiamato Jenkinsfile nella directory principale del repository. Questo dovrebbe contenere il tuo lavoro dsl.

16

È necessario utilizzare pipelineJob.

Esempio:

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

Credo che questa domanda sta chiedendo qualcosa come utilizzare il DSL lavoro per creare un processo di gasdotto che fa riferimento al Jenkinsfile per il progetto, e non si combina la creazione di posti di lavoro con il dettaglio definizioni di passo come è stato dato nelle risposte fino ad oggi. Questo ha senso: la creazione del lavoro di Jenkins e la configurazione dei metadati (descrizione, trigger, ecc.) Potrebbero appartenere agli amministratori di Jenkins, ma il team di sviluppo dovrebbe avere il controllo su ciò che effettivamente fa il lavoro.

@meallhour, è il seguente cosa stai cercando? (Funziona come in Giobbe 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' << '' }) 
     } 
    } 
    } 
} 

Rif il DSL lavoro pipelineJob: https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob, e mettere mano a su http://job-dsl.herokuapp.com/ per vedere la configurazione generata.

Questo esempio ha funzionato per me. Ecco un altro esempio in base a ciò che ha funzionato per me:

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

Se costruire il gasdotto prima attraverso l'interfaccia utente, è possibile utilizzare il file config.xml e la documentazione Jenkins https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob per creare il vostro lavoro pipeline.

Problemi correlati