Jenkins:在上游变更时触发多分支管道
我目前正在测试Jenkins 2.0的管道方法,以查看它是否适用于我正在使用的构建环境。
首先是环境本身。当前它由多个SCM存储库组成。每个存储库都包含多个分支,用于开发的不同阶段,并且每个分支都使用多种配置构建。并非所有配置都适用于每个存储库。
当前,每个存储库/分支都被设置为适用于不同配置的矩阵项目。每个项目将其构建结果作为工件公开,并且这些工件在下游项目中使用。
不同的存储库彼此依赖,因此在上游作业上成功构建会触发一些特定的下游作业。目前,所有这些都可以正常工作,但是设置新分支或调整构建过程所需的工作量很多,因为需要手动更改许多不同的项目。
现在,我想尝试一下新的管道。我的想法是创建多分支管道项目,并Jenkinsfile
在包含构建说明的存储库内部放置一个。
主要问题是使内部版本相互触发,因为基本上在特定上游分支中的内部版本需要触发下游分支。上游项目并不知道需要触发哪些下游分支的信息。每个下游项目都从一些上游分支获取工件,而理想的解决方案是,如果作为工件的来源的上游构建完成了构建,则将触发下游构建。
问题是只有下游项目才真正知道它们需要什么工件。在大多数情况下,分支名称不太可能匹配,这使得从上游项目触发构建非常困难。
目前,这是使用解决的ReverseBuildTrigger
。但是,只要它到达管道附近,它就会停止工作。
我真的很茫然如何使它工作。有什么办法可以像ReverseBuildTrigger
在管道脚本中工作一样吗?
如果更改单个上游分支,也不触发所有分支的整个下游构建。这将创建太多相等的构建。
-
我目前正在尝试使其适用于我们的部署。我最接近的是将以下内容添加到下游Jenkinsfile中;
properties([ pipelineTriggers([ triggers: [ [ $class: 'jenkins.triggers.ReverseBuildTrigger', upstreamProjects: "some_project", threshold: hudson.model.Result.SUCCESS ] ] ]), ])
至少让Jenkins承认构建“ some_project”时应该触发它,即它出现在“ View Configuration”页面中。
但是,到目前为止,“ some_project”的构建仍未按预期触发下游项目。
话虽这么说,也许您会有更多的运气。请让我知道这对你有没有用。
-
Jenkins多分支管道和指定上游项目
2021-01-31 关注 0 浏览112 1答案
-
如何远程触发Jenkins多分支管道项目构建?
2021-01-31 关注 0 浏览94 1答案
-
如何避免Jenkins多分支管道作业触发自身
2021-01-31 关注 0 浏览97 1答案
-
Gitlab合并请求事件未触发Jenkins多分支管道
2021-01-31 关注 0 浏览61 1答案
-
Jenkins多分支管道扫描,无需执行
2021-01-31 关注 0 浏览94 1答案
-
Jenkins多分支管道不安排标签作业
2021-01-31 关注 0 浏览117 1答案
-
如何限制Jenkins并发多分支管道构建?
2021-01-31 关注 0 浏览90 1答案
-
如何在Jenkins多分支管道项目中为职位设置职位属性?
2021-01-31 关注 0 浏览115 1答案
-
Jenkins 2多分支管道-如何使用角色策略插件限制分支的可见性/执行?
2021-01-31 关注 0 浏览123 1答案
-
使用凭证参数在多分支管道作业中从Jenkins凭证管理器读取问题难以解决
2021-01-31 关注 0 浏览131 1答案