Jenkins 使用 Build Flow 插件配置工作流任务依赖

Jenkins 多任务依赖方式的配置方法目前可以通过MultiJob Project 或者Build Flow 或者Pipleline,或者

多个自由风格的job通过tigger触发的方式进行依赖关联。

新建 Build Flow project 工作流,Build Flow的方式配置任务依赖:具体配置需要使用DSL编辑器定义工作流。

Build Flow 可以通过简单的脚本(Groovy DSL)定义工作流。具体的教程可以参考Build Flow 插件的官方说明文档:https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

下面是一些常用的配置方法:

##顺序执行3个任务:job1,job2,job3
build( "job1" )
build( "job2" )
build( "job3" )
##参数构建:param1是参数名,foo是参数值。
b = build( "job1", param1: "foo", param2: "bar" ) //job1 必须是包含param1,param2的job。
build( "job2", param1: b.build.number ) ##获取环境变量
def revision = b.environment.get( "GIT_REVISION" ) ##guard + rescue类似于 java的try +finally;可以在finally做一些清理工作。
guard {
build( "this_job_may_fail" )
} rescue {
build( "cleanup" )
} ##忽略某种状态:
##这里忽略操作可选的状态有:UNSTABLE < FAILURE < ABORTED
ignore(FAILURE) {
build( "send_twitter_notification" )
}
## 任务失败重试:相当于retry-failed-job plugin,
## 重试3次当任务失败的时候。
retry ( 3 ) {
build( "this_job_may_fail" )
} ###并发的执行任务:job1,job2,job3 会被并发的执行,job4会在job1,2,3都完成后才执行。
parallel (
// job 1, 2 and 3 will be scheduled in parallel.
{ build("job1") },
{ build("job2") },
{ build("job3") }
)
// job4 will be triggered after jobs 1, 2 and 3 complete
build("job4") ###与并行插件相比,并行可以用于更复杂的工作流,其中并行分支可以顺序链接多个作业。
###并行的执行两组任务,这两组任务内又是顺序执行的。
###job1A,job1B,job1C 是顺序执行的;job2A,job2B,job2C也是顺序执行的。 parallel (
{
build("job1A")
build("job1B")
build("job1C")
},
{
build("job2A")
build("job2B")
build("job2C")
}
) ###给并行任务定义一个名字,利用名字引用执行的状态。
join = parallel ([
first: { build("job1") },
second: { build("job2") },
third: { build("job3") }
]) // now, use results from parallel execution
build("job4",
param1: join.first.result.name,
param2: join.second.lastBuild.parent.name) ###可以结合其他业务流程关键字:
parallel (
{
guard {
build("job1A")
build("job1B")
} rescue {
build("job1C")
}
},
{
retry 3, {
build("job2")
}
}
)
##并发里面使用retry。
parallel (
// job 1, 2 and 3 will be scheduled in parallel.
{retry(3){
build("MultiJobTest-step1-1")
}},
{ build("MultiJobTest-step1-2") }
)
##对一个并发操作进行重试。
retry ( 3 ) {
parallel (
// job 1, 2 and 3 will be scheduled in parallel.
{retry(3){
build("MultiJobTest-step1-1")
}},
{ build("MultiJobTest-step1-2") }
)
}
  • 缺点:该项目前2017年虽然还在维护和更新,但jenkins官网提示该插件是已经是过时的,建议用户迁移 到Pipeline Plugin插件。
  • 可以使用 Build Graph View Plugin插件展示工作流视图。下载地址:https://wiki.jenkins-ci.org/display/JENKINS/Build+Graph+View+Plugin (有时:需要重启Jenkins和tomcat服务,才能正常展示视图)

Jenkins 使用 Build Flow 插件配置工作流任务依赖的更多相关文章

  1. openStack CI(Continuous interaction)/CD(Continuous delivery) Gerrit/Jenkins安装及集成,插件配置

    preFace: CI/CD practice part contains the following action items and fields of expertise: Gerrit ins ...

  2. Jenkins Docker安装及Docker build step插件部署配置

    生产部署环境:A:192.168.1.2 B:192.168.1.3  两台服务器系统均是Centos 7.3 , Docker版本都1.12.6 Jenkins安装操作步骤: 1.在A服务器上使用命 ...

  3. jenkins Build Flow job 输入参数获取和传递

    jenkins Build Flow job 输入参数获取和传递 如果设置Build Flow的job,怎样获取手工输入的参数. 1. 指定构建参数 job配置中,勾选"参数化构建" ...

  4. [原]Jenkins(三)---Jenkins初始配置和插件配置

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5331 ...

  5. Jenkins进阶系列之——14配置Jenkins用户和权限

    今天给大家说说使用Jenkins专有用户数据库的配置,和一些常用的权限配置. 配置用户注册 在已运行的Jenkins主页中,点击左侧的系统管理—>Configure Global Securit ...

  6. Jenkins中关于一些插件的使用

    Jenkins中关于一些插件的使用方法 最近在为公司搭建CI平台过程中,以及在具体项目实施过程中使用过的一些插件的具体用法: 1. ant插件 这个插件可能是我们最为经常使用的,若构建脚本是使用bui ...

  7. Jenkins 利用Build With Parameters Plugin实现Jenkins参数化构建

    利用Build With Parameters Plugin实现Jenkins参数化构建   by:授客 QQ:1033553122 测试环境 Build With Parameters Plugin ...

  8. 第三章 持续集成jenkins工具使用之邮件配置

    1   Email Extension Plugin插件安装 持续集成很重要的一环就是及时将构建结果通知到对应的责任人,如:构建失败了,至少需要下发通知给造成本次构建失败的开发人员,如果包含自动化测试 ...

  9. Jenkins系列-Jenkins用户权限和角色配置

    由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,这边将使用Role Strategy Plugin,介绍页面:https://wiki.jenki ...

随机推荐

  1. 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出  ...

  2. 【UVALive】2965 Jurassic Remains(中途相遇法)

    题目 传送门:QWQ 分析 太喵了~~~~~ 还有中途相遇法这种东西的. 嗯 以后可以优化一些暴力 详情左转蓝书P58 (但可能我OI生涯中都遇不到正解是这个的题把...... 代码 #include ...

  3. Eutils用法总结

    好久没更新了,这里都长草了... 总结下Eutils的用法,参考<E-utilities Quick Start>,没时间看英文的可以参考下. 简介 Eutils全称是The Entrez ...

  4. [Octave] fminunc()

    fminunc( FCN, X0); fminunc( FCN, C0, Options); [X, FVEC, INFO, OUTPUT, GRAD, HESS] = fminunc (FCN, . ...

  5. 版本控制器svn详细

    2 svn介绍 2.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对代码文件.配置文件.文档等没有进行版本控制,将会出现很多问题: 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易 ...

  6. 使用Fiddler对IPhone手机的应用数据进行抓包分析

    原文出自: http://www.cr173.com/html/20064_1.html Fiddler能捕获ISO设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备.  ...

  7. OpenCL 第一个计算程序,两向量之和

    ▶ 一个完整的两向量加和的过程,包括查询平台.查询设备.创建山下文.创建命令队列.编译程序.创建内核.设置内核参数.执行内核.数据拷贝等. ● C 代码 #include <stdio.h> ...

  8. 小米笔记本pro CPU GPU 做科学计算的算力对比

    小米笔记本pro:15.6寸,i7-8850,16G,256G,GPU:MX150 测试对象Caffe,MNIST训练 使用纯CPU训练: 1.耗时:11分58秒 2.功耗:35W 使用GPU训练: ...

  9. Win10 安装 及应用遇到的问题

    IOS https://www.microsoft.com/zh-cn/software-download/techbench setup win10安装必须用administrator账号安装 在w ...

  10. MS SQL 2000 分配权限

    /** 分配权限 **/ use [master]create login [ln-tf\liaobin] from windows;gogrant control server to [ln-tf\ ...