2017-07-04 5 views
0

DockerファイルでJenkinsをビルドしています。Dockerビルド中にJenkinsに一連のジョブをあらかじめ設定したいと考えています。私はこれが仕事が播種されているJobs DSLでうまくいくと思っていますが、私はまだ "Pipeline" DSLをあらかじめ設定しています。ジェンキンスの方向とJenkisfile、パイプラインなどの使用を考えると、私はジェンキンスが自動的パイプラインジョブでJenkinsを初期化する

例のパイプラインパイプラインのアプローチを使用して構築されたジョブのセットで実行できるようにするいくつかの方法がなければならないと思う:

pipeline { 
     agent { 
      label 'cft' 
     } 
parameters { 
     string(name: 'StackName', defaultValue: 'cft-stack', description: 'The name to give the CFT stack.') 
     string(name: 'KeyName', defaultValue: 'ACCOUNT', description: 'The account key to use for encryption.') 
     string(name: 'VpcId', defaultValue: 'vpc-1234', description: 'The VPC to assign to the cluster resources.') 
     string(name: 'SubnetID', defaultValue: 'subnet-1234, subnet-6789', description: 'The subnet(s) to assign to the cluster resources.') 
    stages { 

     stage('Build') { 

      steps { 

       s3Download(file:'cft.yaml' 
        , bucket:'cft-resources' 
        , path:'cft.yaml' 
        , force:true) 

       cfnUpdate(stack:"${params.StackName}" 
        , file:"cft.yaml" 
        , params:[ 
        "SnapshotId=${params.SnapshotId}", 
        "KeyName=${params.KeyName}", 
        "VpcId=${params.VpcId}" 
        ] 
        , timeoutInMinutes: 20 
       ) 
      } 
     } 
    } 
    post { 
     failure { 
      echo 'FAILURE' 
      cfnDelete(stack:"${params.StackName}") 
     } 
    }  
} 

Dockerfile:

COPY ./groovy/*.groovy /usr/share/jenkins/ref/init.groovy.d/

答えて

0

パイプラインのGroovyのファイルはジェンキンスを構成するために実行することができGroovyのコードとは異なります。パイプラインを追加しようとしているようにはできません。

あなたのオプションは、(パイプラインがレポでJenkinsfileにする必要がありますように、あなたのレポを指して)

  • は、ジョブ定義のためのXMLファイルをコピー含ま
  • のGroovyを使用してジョブを作成し、それを設定(実用的ではないIMHO)
  • JobDSL(やはりXMLを出発点として)を使用してJenkinsジョブを指定します。これを自動的に追加する例は、tknerr/jenkins-pipes-infraにあります。
関連する問題