2017-11-23 8 views
0

그래서 나는 나의 DSL 작업을 시드하는 가정이 그루비 스크립트를 가지고 있지만, 내가 잘못하고 자격 증명을 가져 오는 경우와 ENV에 할당하고있는 무슨 확실하지 않다 바르 :젠킨스 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 
    ''' 
    } 
} 
관련 문제