diff --git a/tests/CI/gates.jenkinsfile b/tests/CI/gates.jenkinsfile index ab0fd1cd14c9c0424c687531f73cbe87150c8a5b..c23114b211a464c22381dd585fed6e8eed07ebae 100644 --- a/tests/CI/gates.jenkinsfile +++ b/tests/CI/gates.jenkinsfile @@ -79,33 +79,44 @@ pipeline { * * The Gerrit Trigger provides all the URLs and refspecs to * check out the change. + * + * We need to retrieve the jenkins2 gerrit https credentials + * in case this review is in a restricted project. */ - checkout scm: [$class: 'GitSCM', - branches: [[name: env.GERRIT_BRANCH ]], - extensions: [ - [$class: 'ScmName', name: 'gerrit-public'], - [$class: 'CleanBeforeCheckout'], - [$class: 'PreBuildMerge', options: [ - mergeRemote: 'gerrit-public', - fastForwardMode: 'NO_FF', - mergeStrategy: 'RECURSIVE', - mergeTarget: env.GERRIT_BRANCH]], - [$class: 'CloneOption', - honorRefspec: true, - noTags: true, - depth: 10, - shallow: true + withCredentials([usernamePassword(credentialsId: env.JENKINS_GERRIT_CREDS, + usernameVariable: 'gerrit_user')]) { + + checkout scm: [$class: 'GitSCM', + branches: [[name: env.GERRIT_BRANCH ]], + extensions: [ + [$class: 'ScmName', name: 'gerrit-public'], + [$class: 'CleanBeforeCheckout'], + [$class: 'PreBuildMerge', options: [ + mergeRemote: 'gerrit-public', + fastForwardMode: 'NO_FF', + mergeStrategy: 'RECURSIVE', + mergeTarget: env.GERRIT_BRANCH]], + [$class: 'CloneOption', + honorRefspec: true, + noTags: true, + depth: 10, + shallow: true + ], + [$class: 'PruneStaleBranch'], + [$class: 'BuildChooserSetting', + buildChooser: [$class: 'GerritTriggerBuildChooser'] + ] ], - [$class: 'PruneStaleBranch'], - [$class: 'BuildChooserSetting', - buildChooser: [$class: 'GerritTriggerBuildChooser'] + userRemoteConfigs: [ + [ + credentialsId: env.JENKINS_GERRIT_CREDS, + name: env.GERRIT_NAME, + refspec: env.GERRIT_REFSPEC, + url: env.GERRIT_PROJECT_URL.replaceAll("http(s)?://", "http\$1://${gerrit_user}@") + ] ] - ], - userRemoteConfigs: [ - [name: env.GERRIT_NAME, refspec: env.GERRIT_REFSPEC, url: env.GERRIT_PROJECT_URL ] ] - ] - + } sh "sudo tests/CI/setupJenkinsEnvironment.sh" } diff --git a/tests/CI/unittests.jenkinsfile b/tests/CI/unittests.jenkinsfile index 82bafff38e49beec046e3ad1b973c6a5f0ee757e..332975c2aab18887eedd30ba1cf3f066548cdae3 100644 --- a/tests/CI/unittests.jenkinsfile +++ b/tests/CI/unittests.jenkinsfile @@ -80,32 +80,44 @@ pipeline { * * The Gerrit Trigger provides all the URLs and refspecs to * check out the change. + * + * We need to retrieve the jenkins2 gerrit https credentials + * in case this review is in a restricted project. */ - checkout scm: [$class: 'GitSCM', - branches: [[name: env.GERRIT_BRANCH ]], - extensions: [ - [$class: 'ScmName', name: 'gerrit-public'], - [$class: 'CleanBeforeCheckout'], - [$class: 'PreBuildMerge', options: [ - mergeRemote: 'gerrit-public', - fastForwardMode: 'NO_FF', - mergeStrategy: 'RECURSIVE', - mergeTarget: env.GERRIT_BRANCH]], - [$class: 'CloneOption', - honorRefspec: true, - noTags: true, - depth: 10, - shallow: true + withCredentials([usernamePassword(credentialsId: env.JENKINS_GERRIT_CREDS, + usernameVariable: 'gerrit_user')]) { + + checkout scm: [$class: 'GitSCM', + branches: [[name: env.GERRIT_BRANCH ]], + extensions: [ + [$class: 'ScmName', name: 'gerrit-public'], + [$class: 'CleanBeforeCheckout'], + [$class: 'PreBuildMerge', options: [ + mergeRemote: 'gerrit-public', + fastForwardMode: 'NO_FF', + mergeStrategy: 'RECURSIVE', + mergeTarget: env.GERRIT_BRANCH]], + [$class: 'CloneOption', + honorRefspec: true, + noTags: true, + depth: 10, + shallow: true + ], + [$class: 'PruneStaleBranch'], + [$class: 'BuildChooserSetting', + buildChooser: [$class: 'GerritTriggerBuildChooser'] + ] ], - [$class: 'PruneStaleBranch'], - [$class: 'BuildChooserSetting', - buildChooser: [$class: 'GerritTriggerBuildChooser'] + userRemoteConfigs: [ + [ + credentialsId: env.JENKINS_GERRIT_CREDS, + name: env.GERRIT_NAME, + refspec: env.GERRIT_REFSPEC, + url: env.GERRIT_PROJECT_URL.replaceAll("http(s)?://", "http\$1://${gerrit_user}@") + ] ] - ], - userRemoteConfigs: [ - [name: env.GERRIT_NAME, refspec: env.GERRIT_REFSPEC, url: env.GERRIT_PROJECT_URL ] ] - ] + } sh "sudo tests/CI/setupJenkinsEnvironment.sh" }