2017-11-07 11 views
0

jinkins DSLにpipelineJob dslを統合しようとしています(jenkins DSLプラグインによる)。Jenkinsワークフロー(パイプライン)+ JobDSLプラグイン - SCMが機能しない

jenkins DSLのAPIリファレンスに見られるように、私の目的のための議論があります。 pipelineJob - > scm - > git

しかし、生成後、UIにはまったくscmビューがありません。純粋なpipelineJobを作成した場合、scmのUIもありませんでした。

私はパイプラインプラグインのソースを追跡してpipelineJobが継承したジョブを認識したので、通常のジョブのようなSCM関連のオプションがあるはずです。

パイプラインジョブで通常のscm UIを取得する方法はありますか?または私はグルーヴィースクリプトだけで私の目的を達成する必要がありますか?

ジェンキンスジョブDSLは

def projects = [ 
    'Nova', 
    'Keystone', 
    'Cinder', 
    'Glance', 
    'Horizon', 
    'Neutron', 
    'Networking-kakao', 
    'Neutron-fwaas', 
    'Neutron-lbaas', 
    'Octavia', 
    'Ceilometer', 
    'Heat', 
    'Sahara', 
    'Trove' 
] 

def codeName = 'mitaka' 
def ref = 'kakao/' + codeName 

projects.each { 
    def project = it 
    def jobName = 'Unit/OpenStack/' + project 

    project = project.toLowerCase() 
    pipelineJob(jobName) { 
    logRotator(daysToKeep = 7, numToKeep = 5) 

    scm { 
     concurrentBuild() 
     git { 
      remote { 
      url("https://github.com/openstack/${project}.git") 

      } 
      branch("${ref}") 
      extensions { 
       wipeOutWorkspace() 
      } 
     } 
    } 

    definition { 
     cps { 
      sandbox() 
      script(""" 
      node { 
      stage ('Clone Sources') { 
      git { 
      remote { 
      url("https://github.com/openstack/${project}.git") 
      credentials("ccc") 
      } 
      branch("${ref}") 
      extensions { 
      wipeOutWorkspace() 
      } 
      } 
      git { 
      url 'https://github.com/openstack-tox-base.git' 
      branch 'rewrite' 
      } 
      sh 'cp tox-openstack-base/Dockerfile.test Dockerfile' 
      } 

      docker.withServer('tcp://...:2375') { 
       def img 
       def base = docker.image('idock.daumkakao.io/openstack/tox/test-base:newton2') 

       stage ('Build Test Image') { 
       base.pull() 
        img = docker.build("tox/newton/test-horizon") 
       } 

      stage ('Run Test') { 
       sh "docker run --rm tox/newton/test-horizon" 
      } 
      } 
      } 

     """.stripIndent()) 
     } 
    } 
} 
} 
+0

パイプラインは、コードを介して設定されており、それは良いことです。 'scm'を使ってJobDSLコードにSCMを設定することができます。 [APIビューア](https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob-scm)を見てください。そしてあなたはパイプラインで同じ手段を持っています。私は[Jenkins Pipelines](https://jenkins.io/doc/book/pipeline/)に詳しいことをお勧めします。 – StephenKing

+0

@StephenKingはい、そういうわけで私はこの質問を投稿します。 APIリファレンスから、私はJobDSLでscmを使用することになっていました。しかし、SCMはまったく生成されません。 (パイプラインジョブにもscmビューはありません) – XeIte

+0

PLSコードを投稿してみてください。 –

答えて

0

の下にパイプラインの仕事はscmブロックをサポートしていません。残念ながら、Job DSL APIではpipelineJobのブロックscmを使用できます。それはJob DSLの未解決の問題です。JENKINS-31832を参照してください。

cpsScmブロックを使用し、SCMからあなたのパイプラインのスクリプトをロードするには:

pipelineJob('example') { 
    definition { 
    cpsScm { 
     scm { 
     git('https://github.com/jenkinsci/job-dsl-plugin.git') 
     } 
    } 
    } 
} 
関連する問題