Jenkins pipeline基本用法
原新浪博客(http://blog.sina.com.cn/billsona)搬迁至此。
前言
近期项目中用到了pipeline,支用过程中有一些感触,借此做一下总结。
随着DevOps的日趋火热,pipeline的关注度也逐渐水涨船高。
先说一下自己的感触,之前用jenkins的时候,一直使用的是普通自由风格的project,这种用法简单方便,并且相关的资料也更多,更成熟。但是当一个project当中使用多台jenkins slaves的时候,就往往会有些力不从心,机器之间的来回操作和参数传递都变得异常困难,并且极其不稳定。 当大概了解了pipeline之后,才发现pipeline是解决这个问题的终极武器。pipeline非常适合有多台jenkins slaves以及多模块的大型项目持续集成或者DevOps。机器之间传递参数如行云流水,简单有效可靠。一个简单的pipeline运行效果如下图所示。
提示:以下是本篇文章正文内容,下面案例可供参考
一、一个简单的pipeline
一个简单的pipeline定义可以像下图显示的一样。
这个pipeline中定义了两个stage和两个slave,第一个stage运行在slave01上面,主要功能是给variabel变量赋值;第二个stage运行在slave02上面,主要功能是打印第一个stage中产生的变量variabel的值。具体执行结果如下图所示。
二、when关键字
when在pipeline中能够完成很好的条件判断,用来判断当前stage是否需要执行。当when关键字中包含多个条件判断的时候,需要所有条件判断为true的情况下才会执行。 另外,when还可以搭配可以嵌套的not、allOf、anyOf实现更加复杂的条件判断。
下面一段代码实现了一个简单的带when的pipeline。
这个pipeline的直接结果如下。
三、currentBuild.result
currentBuild.result参数能够很好的将pipeline中stage的执行结果传递出来,用来判断整个job的执行状态。代码示例如下。
执行结果如下。
四、credentials应用
某些情况下,pipeline中某些stage的执行需要用到凭证(credentials),凭证的添加在groovy脚本中也是很方便的。
这里的前提是在jenkins中已经创建好了我们需要的凭据,我们这里仅仅描述怎么使用这个凭据。
在project页面上,点击左侧Configure菜单,在打开的配置页面上,下拉到最后,pipeline脚本的下方有个名字为“Pipeline Syntax”的超链接,点击超链接,进入流水线语法页面。
在“Sample Step”选中的下拉菜单中选择“withCredentials: Bind credentials to variables”,如下图。
在Bindings中选择对应绑定的类型,示例中我们选择“Secret text”,输入variable名称,选择对应的credentials,如下图。
点击下方的“Generate Pipeline Script”按钮,就可生成对应的带credentials的脚本,如下图。
直接复制出这段脚本,粘贴到groovy脚本对应的位置即可,具体粘贴位置如下图。
Job之间传递参数
有时候需要在前后两个有关联的project之间传递一些数据Jenkins上的Parameterized Trigger插件几乎能够完美的满足这个需求。安装好插件以后,具体用法如下。
在上游project的配置页面的“构建后操作”中添加“Trigger parameterized build on other projects”步骤。输入对应的后续执行的project名称,然后在Predefined parameters中设置需要传递的参数,然后保存。如下图,例子中,的My_xxx就是定义的需要传递到下个project的参数。
打开下游project的配置页面,在“General”中勾选“参数化构建过程”,然后通过“添加参数”菜单逐个添加在上游project中定义的参数。如下图。
这样在下游的project中就可以像使用project内部的参数一样使用对应的参数了,如下图。
更多推荐
所有评论(0)