2017-12-03 14 views
1

私のJenkinsパイプラインジョブを作成するDSLスクリプトがあります。JenkinsはDSLを使用してmultibranchPipelineJobにgitサブモジュールを追加します

String[] repos = 
    ['xxx']  

for (int i = 0; i < repos.length; i++) { 
    repoName = repos[i];  
    multibranchPipelineJob('PIPELINE-'+repoName) { 
     branchSources { 
      git { 
       remote('[email protected]:yyy/'+repoName+'.git') 
       credentialsId('112233445566') 
      } 
     } 
     description ("""<p> <b>generate by DSL - DO NOT CHANGE Manually </b> <p>""") 
     triggers { 
      periodic(2) 
     } 
     orphanedItemStrategy { 
      discardOldItems { 
       numToKeep(0) 
       daysToKeep(0) 
      } 
     } 
    } 
} 

私は追加の動作追加したい - 高度なサブモジュールは、ビヘイビアenter image description here

答えて

1

サブモジュールのタグを追加して分岐を検出するスクリプトです。

multibranchPipelineJob('example') { 
    branchSources {  
    branchSource { 
     source {   
     git { 
      credentialsId('1111-2222-3333') 
      remote('[email protected]:xxx/yyyy.git') 

      traits {    
      submoduleOptionTrait { 
       extension { 
       disableSubmodules(false) 
       recursiveSubmodules(true) 
       trackingSubmodules(false) 
       reference(null) 
       timeout(null) 
       parentCredentials(true) 
       } 
      } 

      cloneOptionTrait { 
       extension { 
       shallow (false) 
       noTags (false) 
       reference (null) 
       depth(0) 
       honorRefspec (false) 
       timeout (10) 
       } 
      } 
      } 
     } 
     } 
    } 
    } 

    triggers { 
      periodic(2) 
     } 

configure { 
     def traits = it/sources/data/'jenkins.branch.BranchSource'/source/traits 
     traits << 'jenkins.plugins.git.traits.BranchDiscoveryTrait' {} 
    } 
} 
2

「追加の動作」をサポートしていませんDSLを内蔵、しかしAutomatically Generated DSLはありません:

multibranchPipelineJob('example-mbp2') { 
    branchSources { 
    branchSource { 
     source { 
     git { 
      id('bbedfd29-5bb0-4c13-b040-0dbd0d19345b') 
      remote('https://github.com/jenkinsci/job-dsl-plugin.git') 
      traits { 
      submoduleOptionTrait { 
       extension { 
       disableSubmodules(false) 
       recursiveSubmodules(true) 
       trackingSubmodules(false) 
       reference(null) 
       timeout(null) 
       parentCredentials(true) 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 
+0

ありがとう、それは素晴らしいですが、何らかの理由で私は資格情報を追加できません...、どんな考えですか? OK、credentialsId –

+0

でIDを更新する必要がある問題を見つけました。さらに2つのQがありますが、Discoverブランチセクションを追加するにはどうすればいいですか?タグもクローンしたいと思います。 –

関連する問題