我有一个Jenkins作业,我正在 checkout 2个存储库,第一个存储库“dev”包含src代码和Jenkinsfile,这个存储库在Jenkins UI中配置,并启用了PollScm。第二个存储库是“devops”,我正在用groovy脚本声明性管道中的稀疏 checkout checkout 这个存储库。
stage('Checkout DevopsScripts') {
steps {
script{
dir('devops'){
def scmVar = checkout([$class: 'GitSCM', \
branches: [[name: '*/master']], \
doGenerateSubmoduleConfigurations: false, \
extensions: [[$class: 'SparseCheckoutPaths', sparseCheckoutPaths:[[$class:'SparseCheckoutPath', path:'Scripts/testScript/']]]], \
submoduleCfg: [], \
userRemoteConfigs: [[credentialsId: 'XXXXXXX', url: "https://github.com/org/devops.git"]], \
poll: false, \
changelog: false
])
}
}
}
}
现在我希望PollScm只对“dev”repo中发生的提交执行,PollScm应该忽略“devops”repo中发生的提交。但即使在启用poll之后:false Jenkins作业会在两个存储库中发生的任何提交时触发。我已经浏览了文档“https://plugins.jenkins.io/workflow-scm-step/“,其中显示“您可以指定轮询:false来禁用SCM checkout 的轮询”,这在我的案例中没有发生。Jenkins中是否存在与此问题相关的错误,或者我在这里遗漏了什么。
1条答案
按热度按时间holgip5t1#
这是Jenkins中的已知错误,截至2022年11月23日尚未修复。请参阅Jenkins-60757 on the bug tracker:'“poll:false”在scm(和git)管道步骤中无效'。
因此,基本上
poll: false
标志现在不起作用。