Trả lời

5

Trong Job DSL, đường ống dẫn vẫn được gọi là quy trình làm việc, xem workflowJob.

Bản phát hành DSL công việc tiếp theo sẽ chứa một số cải tiến cho đường ống, ví dụ: JENKINS-32678.

1

Nếu bạn đang sử dụng repo git, hãy thêm một tệp có tên Jenkinsfile vào thư mục gốc của repo của bạn. Điều này sẽ chứa dsl công việc của bạn.

16

Bạn nên sử dụng pipelineJob.

Ví dụ:

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

Tôi tin rằng câu hỏi này là yêu cầu một cái gì đó làm thế nào để sử dụng DSL việc để tạo ra một công việc đường ống dẫn mà tham chiếu Jenkinsfile cho dự án, và không kết hợp giải quyết việc làm với các chi tiết định nghĩa bước như đã được đưa ra trong các câu trả lời cho đến nay. Điều này có ý nghĩa: việc tạo và cấu hình siêu dữ liệu công việc của Jenkins (mô tả, trình kích hoạt, vv) có thể thuộc về quản trị viên Jenkins, nhưng nhóm dev nên có quyền kiểm soát những gì công việc thực sự làm.

@meallhour, dưới đây là những gì bạn đang theo dõi? (Chỉ hoạt động tại thời điểm công việc 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 các Job DSL pipelineJob: https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob, và hack đi vào nó trên http://job-dsl.herokuapp.com/ để xem cấu hình được tạo ra.

Ví dụ này phù hợp với tôi. Dưới đây là một ví dụ khác dựa trên những gì làm việc cho tôi:

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

Nếu bạn xây dựng các đường ống dẫn đầu tiên thông qua giao diện người dùng, bạn có thể sử dụng file config.xml và các tài liệu Jenkins https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob để tạo ra công việc đường ống của bạn.

Các vấn đề liên quan