持续集成高级篇之Jekins参数传入与常见任务 (2)

我们前面已经说过,可以在jenkins PipeLine里直接执行groovy脚本,如果仅仅是定义一个变量这样简单的动作无所谓,如果有大量的代码和业务逻辑掺杂在一块,则势必影响代码可读性.此时可以使用script代码块把要执行的大段groovy脚本包在里面

如下图示

node { def hello="world" stage("echo"){ script{ for(i=0;i<=3;i++){ println(i) } } bat "echo $version" } }

以上我们把循环语句放在代码块里,println可以把内容打印到Jenkins控制台.

逻辑分支

这里仅仅是列出来希望引起大家的注意,在脚本式PipeLine里逻辑分支非常简单,只需要使用if分支语句即可,熟悉groovy脚本的童鞋可以尽情发挥所掌握知识

并行任务

在PipeLine里可以执行并行任务,充分利用并行任务在特定场景下将极大节约构建时间,提升构建效率.比如说我们的项目是一个模块非常多的项目,每个模块存在不同的仓库里,则我们在拉取项目进行编译的时候可以并行拉取这个库,把这些并行任务放在一个步骤里,完成后再执行下一步编译工作.

请看下面示例代码

node{ stage("poll source"){ parallel( a: { echo "This is branch a" }, b: { echo "This is branch b" } ) } stage("build"){ echo "build successfully" } }

以上代码在poll source步骤里,我们通过parallel并行执行了a和b两个任务.这样将极大节约代码拉取时间.

我们保存项目后点击构建,构建完成后打开BlueOcean视图,点击进入本次构建,就会看到如下图

img

可以从图形界面形象地看到poll source步骤分为a和b两个并行的任务.然后它们汇集到下一步.

使用并行任务时一定要梳理好构建的逻辑,否则将会出现意想不到的结果.如果以上a b 和build并行执行,则将会导致构建失败,因为构建依赖于以上两个步骤都执行完成.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspjfz.html