我有一个jenkinsfile,我尝试使用共享库执行。 我的函数(现在可以作为行函数使用)是:
def gitCheckout(gitUrl, creadencialsId = "", branch, scm){
script {
echo "inside"
checkout (
poll:false,
scm: [
$class: 'GitSCM', branches: [[name: "${branch}"]],
extensions: scm.extensions,
submoduleCfg: [],
userRemoteConfigs: [[refspec: "+refs/heads/${branch}:refs/remotes/origin/${branch}", url: "${gitUrl}", credentialsId: "${credentialsId}"]]
]
)
}
}
并且我正在尝试将scm.extensions的数组传递进去,以便可以在使用它之前对其进行修改,现在我正在尝试的是:
stage('Get Sources') {
steps {
script {
echo "before extensions"
scm.extensions = [[$class: 'CloneOption', noTags: true, reference: '', shallow: false], [$class: 'DisableRemotePoll']]
echo "before git checkout"
gitCheckout("${gitUrl}", "SSH-for-git", "${params.branch}", scm)
}
}
}
但是没有运气! 我找不到任何可以正确使用scm对象的方法。 我尝试过类似的事情
scm.extensions.add([[$class: 'CloneOption', noTags: true, reference: '', shallow: false], [$class: 'DisableRemotePoll']])
scm.extensions += [[$class: 'CloneOption', noTags: true, reference: '', shallow: false]] + [[$class: 'DisableRemotePoll']]
等还是没有运气