前面一篇,介绍了什么是Pipeline,和Pipeline的基本概念,和几个关键字的基本含义的介绍,真正的涉及到Pipeline的语法还没有开始介绍。这篇先来介绍第一个Pipeline代码,分别用两种模式来写,逐渐开始展开Pipeline的语法学习。
1.前提条件准备
1)准备一个Jenkins环境
我个人有一个VPS,搭建了一个Jenkins,供大家参考。我这个系列的脚本涉及Pipeline代码和全部Jenkins job都会在上面进行测试。但是这个环境,还有不到一年时间过期,大概2019-7月份到期。Jenkins url: http://65.49.216.200:8080/ , 你们可以用这个账号去登录:anthony/123456
- Jenkins环境master节点
我这个Jenkins是安装到一个Linux上,安装好了Jenkins,还需要安装Groovy,以及Git,还有后面也需要安装Python环境。因为Pipleline里面需要写一部分Groovy代码,所以需要安装Groovy运行环境,安装Python也是基于这个原因。
- 准备一个Github账号和代码仓库
因为Jenkins每次构建之前一般都需要去check out代码,所以我们项目练习代码放在github上,后面我使用的代码会给出,你们如果需要,可以去folk。
2.在Jenkins上创建一个Pipeline项目
这个可能很多人没有创建过这个类型,基本上大家之前创建的项目都是自由风格的。参考下面这个图,创建一个Pipeline Job.(注:安装Jenkins的向导过程中,选择默认的插件安装,就会有Pipeline组件)
3.不集成Github的Pipeline代码
这种方式,直接把写好的Pipeline代码拷贝到Pipeline对应的Jenkins页面上,经常用这个方式来进行本地Debug和单元测试。
选择上面创建好的这个Pipeline Job,点击Confige, 到达配置界面,点击Pipeline,然后把代码帖进去,点击保存,具体参考下图。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 1pipeline {
2 agent any
3 stages {
4 stage('Build') {
5 steps {
6 println "Build"
7 }
8 }
9 stage('Test') {
10 steps {
11 println "Test"
12 }
13 }
14 stage('Deploy') {
15 steps {
16 println "Deploy"
17 }
18 }
19 }
20}
21
上面这个Pipeline模式就是一个典型的Declarative类型,先不管上面具体语法,我们点击保存,然后点击Build Now,看看控制台日志,会发生什么。
下面我们继续来看看Script模式,修改并黏贴如下代码。
点击保存,然后点击Build Now,继续看看#2的job的控制台。
从日志结果来看,第二种Scripted Pipeline代码也成功运行,得到了正确的结果。
4.集成Github,把Pipeline代码放到Jenkinsfile文件中
这种方式才是开发中使用的场景,任何Pipeline和业务代码一样需要添加到代码仓库。这里我们模仿git,只写Declarative的模式,以后我们都使用Declarative模式的Pipeline代码。
我准备好的github项目地址:https://github.com/Anthonyliu86/Pipeline-Demo1.git
项目中只有一个Jenkinsfile文本文件,里面写的是Declarative模式的Pipeline代码。下面,继续使用上面创建好的Job,到Configure页面,选择如下图的git拉取Pipeline代码。
点击保存,然后点击Build Now,点击#3的控制台,看看日志。
这种代码拉取,执行文件的方式,运行结果也是成功,以后我们基本上都是使用这个方式。
回到Jenkins job上看看整体构建情况,以下这种图就是Pipeline的优点之一,每个stage或者叫阶段都干了什么事情,是成功还是失败,每个stage都可以看到日志。
这篇就学习到这里,篇幅太长了,具体代码解释和语法含义,下一篇来介绍。能成功跑起来,就可以了,刚开始,很多人都玩不了这个代码,真不要小瞧了。其实上面代码打印语句代码用了Groovy的语法,如果你机器没有安装Groovy,可能就会报错,构建失败。