我们希望在Jenkins
生态系统的基础上设置持续集成和持续部署流程。目前,我们正在尝试将我们拥有的所有Jenkins
构建作业(从源到测试服务器上启动的几个端点进程)整合在一起。在我们的案例中有三种构建/部署过程:
deb
个项目构建C++
个包(其中一些依赖,其他依赖); Docker
容器构建图像;
正如您所注意到的,我们面临着由彼此引发的高度分支的工作链。任何上游项目的每次更新都必须遍及整个工作链并触发最终工作(process I
)。所以使用某种Jenkins
插件会很好:
答案 0 :(得分:3)
正如@slav所提到的,Workflow插件应该能够处理这种复杂的控制流,包括子任务的并行处理,整个过程中变量的简单处理(只是Groovy局部变量),以及{{3} }。
您当然可以将整个过程安排在一个build.gradle
(或Makefile
)中。如果您不介意在同一个Jenkins从属服务器上运行所有步骤,那么这将是合适的,并且在构建过程中不需要以任何特定方式与Jenkins交互或报告。
答案 1 :(得分:2)
嗯,要传递参数,您应该使用 Parameterized Trigger Plugin 。
对于更加异步的参数传递,您可以使用 EnvInject plugin (它对于各种各样的事情非常有用和灵活,考虑到您的复杂性,无论您使用什么,都可能非常有用它是否传递参数)
至于控制,研究 Workflow plugin 。它允许在其自己的Groovy脚本中编写整个执行流程,并具有精细的粒度控制。更多链接:
官方 - https://jenkins-ci.org/content/workflow-plugin-10
教程 - https://github.com/jenkinsci/workflow-plugin/blob/c15589f/TUTORIAL.md#pausing-flyweight-vs-heavyweight-executors