Let*_*ind 6 jenkins jenkins-groovy jenkins-pipeline
我正在为.Net Core应用程序设置Jenkins管道。
如果我在多分支管道配置中配置结帐SCM,则Jenkins多分支管道构建会在Git提交时触发。但是,如果我在Jenkins Declarative Pipeline脚本中显式签出SCM,则多分支管道构建不会在git commit上触发。
有什么办法解决这个问题?
以下是我在脚本中使用的checkout命令:
checkout([$class: 'GitSCM', branches: [], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanCheckout'], [$class: 'PruneStaleBranch']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'credential-id', url: 'my/git/ssh/url']]])
Run Code Online (Sandbox Code Playgroud)
要在新的 git commit 上触发构建,您应该首先在您的管道脚本中通过添加适当的triggers
指令来启用 SCM 轮询Jenkinsfile
:
triggers {
pollSCM 'H/2 * * * *'
}
Run Code Online (Sandbox Code Playgroud)
这将每两分钟轮询您的 SCM 是否有任何更改。如果自上次构建以来检测到更改,您的作业将被触发以构建更改。
投票是获得您想要的东西的最简单方法。但是,您应该考虑使用 post-commit hook 而不是polling。使用轮询Jenkins 必须定期检查 SCM 的更改。在 post-commit hook 的情况下,如有必要,SCM 将通知 Jenkins 有关更改。它比轮询更受欢迎,因为它会减少所需的请求数量和从 Jenkins 到 SCM 存储库的流量。
配置 post-commit hook 后,triggers
应通过提供空字符串作为 cron 参数来修改指令以pollSCM
触发。
triggers {
pollSCM ''
}
Run Code Online (Sandbox Code Playgroud)
这可能会令人困惑,但需要此空字符串才能启用由作业处理的提交后挂钩请求。Jenkins 文档也没有很好地记录它。
归档时间: |
|
查看次数: |
3139 次 |
最近记录: |