Build Flow使我们能够使用专用DSL定义高层流程项,以管理工作编排和链接规则。
让我们看一个非常简单的例子:
第一步是安装插件。
转到Jenkins-> Manage Jenkins-> Plugin Manager-> Available并找到CloudBees Build Flow 插件 。
然后,您可以转到Jenkins-> New Job ,您将看到一种名为Build Flow的新型工作。 在此示例中,我们将其命名为build-all-yy 。
现在,您只需要使用Flow DSL编程该工作应如何编排其他工作。
在“ 使用流DSL定义构建流 ”输入文本中,您可以指定要执行的命令顺序。
在当前示例中,我已经创建了两个作业,一个执行干净的编译目标 ( yy-compile作业名称),另一个执行javadoc目标 ( yy-javadoc作业名称)。 我知道这个部署管道在真实环境中并不是真实的,但到目前为止已经足够了。
然后,我们希望在项目编译后运行javadoc作业。
要配置它,我们不必创建任何上游或下游操作,只需在DSL文本区域添加下一行:
build('yy-compile'); build('yy-javadoc');
保存并执行“ yyall-all-yy”作业,两个项目将以顺序方式构建。
现在,假设我们添加了名为yy-sonar的第三项工作,该任务运行声纳目标,从而生成代码质量的声纳报告。 在这种情况下,似乎很明显,在编译项目之后,可以并行运行javadocs的生成和代码质量的作业。 因此脚本更改为:
build('yy-compile') parallel( {build('yy-javadoc')}, {build('yy-sonar')} )
此插件还支持更多操作,例如重试 (类似retry-failed-job插件的行为)或guard-rescue ,它们的工作原理大致类似于try + finally块。 您还可以创建参数化的构建,访问构建执行或打印到Jenkins控制台。 下一个示例将打印yy-compile作业执行的内部版本号:
b = build('yy-compile') out.println b.build.number
最后,您还可以在状态部分中快速查看执行情况的图形概述。 确实可以进一步改进,但是目前它是可以接受的,可以毫无问题地使用。
Build Flow插件尚处于早期阶段,实际上仅在0.4版中 。 但是它将是将来要考虑的插件,我认为很高兴知道它的存在。 此外, CloudBees的人员正在开发它,因此这是詹金斯完全支持的保证。
参考:来自我们的JCG合作伙伴 Alex Soto的Build Flow Jenkins插件,来自One Jar To Rule All All博客。
翻译自: https://www.javacodegeeks.com/2012/08/build-flow-jenkins-plugin.html