此问题与具有多个存储库的Jenkins作业自动触发器有关。
在Jenkinsfile中定义了3个repo来结帐。
<item name="android:textColor">@color/black</item>
使用Github组织插件配置Jenkins作业。
在这种情况下,我的Jenkins文件在abc repo中,并且Jenkins自动触发器对于abc repo工作正常。它不适合其他回购。
有没有为2个或更多个回购定义自动触发?
是否有任何插件可以自动触发2个或更多存储库的作业?
我是否需要在Jenkinsfile中以不同方式定义“checkout scm”?
答案 0 :(得分:7)
是的,您可以通过指定多个存储库(单击Pipeline script from SCM
按钮)在管道作业中使用Add Repository
选项执行此操作,假设您可以为3个存储库查看相同的分支,这似乎是你的情况。
使用此配置(当然还激活了Poll SCM
选项),每次对三个存储库之一进行更改时都会触发构建。
关于此解决方案的一些提示:
Jenkinsfile
SCM polls
之间提交了多个项目,结果将无法预测(您刚刚提交的两个项目中的任何一个最终都可以构建),因此您应该不依赖于哪个项目建成。node {
// --- Load the generic pipeline ---
checkout scm: [$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'http://github/owner/pipeline-repo.git']]]
load 'common-pipeline.groovy'
}()
common-pipeline.groovy
脚本:{ ->
node() {
git clone github.com/owner/abc.git
git clone github.com/owner/def.git
git clone github.com/owner/ghi.git
// Whatever you do with your 3 repos...
}
}