Jenkins job 之间实现带参数触发
1 背景
开发打包的 jenkins job A 是在 local 的一台 windows 上,同时在这台 local 的 windows 上还有一 另一个 jenkins job B 是用来上传 job A 生成的包(build)到测试平台的仓库(比如 saucelabs storage)。然而 我们测试的 jenkins job C 是在 azure 上的一台 windows server 2012 上。我们期望的是当 job A 一旦有包(build)生成就传递 build number 给 job B 同时触发 job B 运行,一旦 Job B 运行就会 上传 build 到测试平台的仓库,接着由 job B 把 build number 传递给 Job C 同时触发,job C 运行。那么 问题就来了 job B 和 Job C 不在同一台机器,job B 怎么实现传参数远程触发 job C 呢? 下面 我们分两部分来介绍。
2 同一 jenkins 传参触发
要实现同一 jenkins 上的 job A 传递参数(build number)并触发 job B 运行我们需要做的步骤如下:
1、首先安装 jenkins 参数化插件:Parameterized Trigger Plugin。
2、对 Job A 进行配置;在 Job A 配置面板中 Post-build Actions 选项中选择 Trigger parameterized build on other projects ,如下图:
3、对 Job B 进行配置;在 JobA 中配置了 build_number 参数,在 B job 中要使用此参数,那么需要在Job B 的配置界面中勾选 The build is parameterized。具体配置信息如下所示:
4、检查参数是否成功的由 Job A 传给了 Job B;在 job B 的 windows bat 窗口输入如下命令,在 job B 的控制查看输出参数是否正确。如下图:
经过上面几步我们就可以很容易的实现同一 jenkins 的传参触发,愉快的享用吧。
3 不同 jenkins 传参远程触发
要实现不同 jenkins 上的 job B 传递参数(build number)并触发远程机器上的 job C 运行我们需要做的步骤如下:
1、首先要把 Job A 传递给 Job B 的参数 build_number 以 key-vaule 的方式(便于 job C 读取参数使用和更新参数)写入属性文件(test.properties),在 Job B 中使用如下命令:
echo build_name="%build_number%" >> E:\test.properties
- 1
如下图:
2、获取 Job C 所在的 jenkins 的 API Token,如下图所示:
3、在 Job B 中使用 jenkins 的 remote API 通过 curl 命令行来传参数给 Job C 并触发 Job C 运行,具体命令如下:
curl -X POST http://192.168.181.11:8080/job/C/build --user linda:2a2511f75356f6691f6049bf9ee3806b --form file0=@"E:\test.properties" --form json="{\"parameter\": [{\"name\":\"test.properties\", \"file\":\"file0\"}]}
- 1
如下图:
上面执行的命令参数说明:
- 192.168.181.11:8080 是 job C 所在的 windows 2012 sever 的 ip 地址;
- C 是 job 的名称,这里我们触发的是 Job C;
- linda:2a2511f75356f6691f6049bf9ee3806b 中 linda 是 jenkins 用户名,2a2511f75356f6691f6049bf9ee3806b 是 jenkins 的 API Token;
4、既然是通过文件传递参数那么 Job C 也要配置接收。如下图:
经过上面几步我们就可以很容易的实现不同 jenkins 传参远程触发,愉快的享用吧。总之这样一来当 job A 带参数触发了 job B,Job B 带参数文件触发 Job C,你会看到在 Job C 的根目录下有了参数文件test.properties,这样就可以在 Job C 中使用该参数去测试平台的仓库获取对应的 build 来进行全自动化测试。
附上 jenkins remote api 的 URL: https://wiki.jenkins.io/display/JENKINS/Remote+access+API
Jenkins job 之间实现带参数触发的更多相关文章
- vue-如何实现带参数跳转页面
[前后端分离项目之vue框架经验总结] 文/朱季谦 在vue框架的前端页面上,若要实现页面之间的带参数跳转,可参考以下实现过程: 例如,点击截图中的“查看试卷”,可实现带参跳转到相应的试卷页面,该功能 ...
- react 中 Modal 多次使用且带参数不同实现
一.举例:对于 echatrs 的柱子分别需要弹窗 带参数 触发弹窗出现事件 showModalhref myChart.on('click', (params) => { switch (pa ...
- 【转】如何在命令行脚本中启动带参数的Windows服务
我们有一个自己编写的Windows服务,我们希望该服务在启动时可以根据用户输入的参数实现不同的功能. 要实现这样的需求并不是很难,下面这个例子我用来示范如何编写该服务 using System; us ...
- js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快、简单 post:安全,量大,不缓存)(服务器同步和异步区别:同步:等待服务器响应当中浏览器不能做别的事情)(ajax和jquery一起用的)
js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快.简单 post:安全,量大,不缓存)( ...
- Force.com微信开发系列(八)生成带参数的二维码
为了满足用户渠道推广分析的需要,公众平台提供了生成带二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送.目前有两种类型的二维码,分别是临时二维码和永久二维码 ...
- SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表
SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 2013-10-09 23:09 by BI Wor ...
- Jenkins: 使用groovy + job-dsl 创建并触发job
Jenkins: 使用groovy + job-dsl 创建并触发job 背景: 我们的 Automation 测试脚本需要在10个不同语言的机器上跑,本地化测试产品. 我们用Jenkins启动测试执 ...
- 带参数的Mixin
带参数的mixin 在Less中,还可以像函数一样定义一个带参数的mixin, 这种形式叫做 Parametric Mixin,即带参数的混入.如: // 定义一个样式选择器 .borderRadiu ...
- PHP带参数传值调用python脚本
PHP主要用在服务器端做网站后台开发,有些功能用PHP来实现有点费劲或者无法实现,现在在学习python,同样是脚本语言,感觉python能做的事情PHP不一定能胜任.但是现在大部分的网站后台也是用P ...
随机推荐
- Power BI与Tableau基于Google搜索上的比较
在数据分析领域里,不少的数据爱好者都会关心什么数据分析产品最好用?最重要的是,很多的企业也特别希望员工能真正知道如何使用这些BI平台以确保公司的投资是值得.同类的文章,小悦也曾发布过,可参考最近< ...
- 【转载】 强化学习(五)用时序差分法(TD)求解
原文地址: https://www.cnblogs.com/pinard/p/9529828.html ------------------------------------------------ ...
- mysql设置外键约束开启-关闭
在MySQL中删除一张表或一条数据的时候,出现 [Err] 1451 -Cannot delete or update a parent row: a foreign key constraint f ...
- mybatis下的分页,支持所有的数据库
大家都知道,mybatis的自带分页方法只是逻辑分 页,如果数据量很大,内存一定会溢出,不知道为什么开源组织不在里面集成hibernate的物理分页处理方法!在不修改mybatis源代码的情况下, 应 ...
- python-基础-文件
一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件, 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件的模式有: r ,只读模式[默认模式 ...
- 炫龙笔记本的gtx965m显卡玩游戏很卡
这是我遇到的问题,我2016年10月份这样买了一款笔记本,主要看的是性价比吧!神舟.炫龙都是性价比,所以买了炫龙笔记本 配置如下 cpu:i7 4870hq 显卡:gtx965m 内存条:16G 固态 ...
- Extend a root LVM partition online
There is also a quick remedy for the emergency situation when your root partition runs out of disk s ...
- 如何对oracle数据库进行监控检查
sqlplus '/as sysdba' 手动生成一个oracle数据库的快照 execute dbbms_workload_repository.create_snapshot(); 执行自动工作负 ...
- root用户登录mysql后新建用户提示1045错误
执行以下命令查看root权限 show grants for 'root'@'localhost'; 如果没有显示with grant option,说明是root没有拥有新建授权用户的权限(为什么会 ...
- jquery trigger函数和triggerHandler函数的对照
一句话的差别就是:trigger will bubbling jQuery events (not default DOM events) and triggerHnadler will not do ...