行研ci的pipeline是安装pipeline插件后,在每个job之后增加构建后操作,启动以下个job来实现job的流水线执行的。这种配置方法在实际操作中会存在这样的问题,执行一个job后会默认的开启另一个job,且需要对原来已经配置好的job进行修改。jenkins提供了一种新的pipeline的构建方式,可以在不修改原有job的情况下实现和ci上pipeline一样的功能。下面的内容是这个新的pipeline的使用和配置的实践。
首先,需要安装jenkins插件,进入jenkins的【系统管理】--【插件管理】页面,选择【可选插件】然后搜索pipeline,安装JobConfigHistory+Plugin和Pipeline+Plugin
1、新建一个job
新建一个job,选择类型为pipeline
2、使用groovy语言实现配置
选择“配置”-“Pipeline”,选择“pipeline script”
其中,stage(‘xxx’)表示,这个阶段的名字为xxx,build job:‘xxx’会执行名字为xxx的job,根据脚本将各个job关联起来
groovy语言具体语法参考:http://www.ciandcd.com/?p=95
Jenkins pipeline具体语法参考:http://www.ciandcd.com/?p=166
如果有不会写的代码,可以使用http://yourJenkinsPipeline address /pipeline-syntax/生成代码,然后拷贝到你代码需要的位置即可。
3、执行
点击“立即构建”执行,或者配置定时任务执行。
执行结果如图所示:
其中,红色表示执行失败,绿色表示执行成功,蓝色代表执行中。
其实,在使用groovy的来编写pipeline脚本,直接调用已经配置好的job并不是最好的方法,这样可能会导致每个job都有自己的工作空间,重复执行代码的同步等操作,你可以讲pipeline当作一个普通的job来进行配置,每个阶段需要做什么事情在每个stage单独用命令行实现,并且也可以使用代码实现某些操作的并行等,更为灵活。下面是一个例子:
- stage 'build'
- node {
- git 'https://github.com/xxxx.git'
- sh "mvn clean package"
- }
- stage 'test'
- parallel 'clean': {
- node {
- sh "mvn clean verify"
- }
- }
- }, 'quality': {
- node {
- sh "mvn sonar:sonar"
- }
- }
- }
本文来自网易实践者社区,经作者孟志斌授权发布。