2017-11-23 15 views
0

は、だから、私はDSLの仕事をシードすることになって、このグルーヴィーなスクリプトを持っているが、資格証明書を取得およびenvに割り当てることはvarsのとき、私は私が間違っているのかわからないです:ジェンキンスDSLパイプラインの問題

for(job in product_base_jobs) { 
pipelineJob("${job}") { 
    definition{ 
     cpsScm { 
      scm { 
       git { 
        branches('staging') 
        remote { 
         credentials('jenkins-git') 
         url("[email protected]/${job}.git") 
        } 
       } 
      } 
      scriptPath("./Jenkinsfile") 
     } 
     triggers { 
     } 
    } 
    wrappers{ 
     colorizeOutput() 
     timestamps() 
     credentialsBinding{ 
      usernamePassword('ARTIFACTORY_USER','ARTIFACTORY_PASS','JenkinsArtifactoryCredentials') 
      usernamePassword('ACCESS_KEY','SECRET_KEY','Jenkins_S3') 
     } 
    } 
    environmentVariables{ 
     env('ARTIFACTORY_USER',"${ARTIFACTORY_USER}") 
     env('ARTIFACTORY_PASS',"${ARTIFACTORY_PASS}") 
     env('ACCESS_KEY',"${ACCESS_KEY}") 
     env('SECRET_KEY',"${SECRET_KEY}") 
    } 
} 

}

私はまた失敗した別のアプローチを使用しようとしました:ここ

 credentialsBinding{ 
      usernamePassword{ 
       usernameVariable('ARTIFACTORY_USER') 
       passwordVariable('ARTIFACTORY_PASS') 
       credentialsId('JenkinsArtifactoryCredentials') 
      } 
      usernamePassword{ 
       usernameVariable('ACCESS_KEY') 
       passwordVariable('SECRET_KEY') 
       credentialsId('Jenkins_S3') 
      } 
     } 
     environmentVariables{ 
      env('ARTIFACTORY_USER',"${ARTIFACTORY_USER}") 
      env('ARTIFACTORY_PASS',"${ARTIFACTORY_PASS}") 
      env('ACCESS_KEY',"${ACCESS_KEY}") 
      env('SECRET_KEY',"${SECRET_KEY}") 
     } 
    } 

は、私が取得していますエラーです:

Processing DSL script jobs.groovy 
Warning: (jobs.groovy, line 30) acceptMergeRequestOnSuccess is deprecated 
Warning: (jobs.groovy, line 34) addNoteOnMergeRequest is deprecated 
Warning: (jobs.groovy, line 35) addVoteOnMergeRequest is deprecated 
Warning: (jobs.groovy, line 36) acceptMergeRequestOnSuccess is deprecated 
ERROR: (jobs.groovy, line 50) No such property: ARTIFACTORY_USER for class: javaposse.jobdsl.dsl.helpers.toplevel.EnvironmentVariableContext 
Finished: FAILURE 

私が扱っているバグはありますか、それは間違ったアプローチですか?通常、私はWitchCredentialsをスクリプトファッションの一部として使用しますが、共通の類似点を持つ多数のジョブを統合したいと考えています。

答えて

1

パイプラインジョブタイプはwrappersenvironmentVariablesをサポートしていません。 Job DSLの問題点は、これらの方法が利用できることです。JENKINS-31832を参照してください。

ジョブDSLを使用して資格情報を追加する代わりに、Jenkinsfileのパイプラインコードを使用して資格情報にアクセスします。 Credentials Binding

node { 
    withCredentials([usernameColonPassword(credentialsId: 'mylogin', variable: 'USERPASS')]) { 
    sh ''' 
     set +x 
     curl -u $USERPASS https://private.server/ > output 
    ''' 
    } 
} 
関連する問題