前面一篇,介绍了什么是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

2) Jenkins环境master节点

我这个Jenkins是安装到一个Linux上,安装好了Jenkins,还需要安装Groovy,以及Git,还有后面也需要安装Python环境。因为Pipleline里面需要写一部分Groovy代码,所以需要安装Groovy运行环境,安装Python也是基于这个原因。

3) 准备一个Github账号和代码仓库

因为Jenkins每次构建之前一般都需要去check out代码,所以我们项目练习代码放在github上,后面我使用的代码会给出,你们如果需要,可以去folk。

2.在Jenkins上创建一个Pipeline项目

这个可能很多人没有创建过这个类型,基本上大家之前创建的项目都是自由风格的。参考下面这个图,创建一个Pipeline Job.(注:安装Jenkins的向导过程中,选择默认的插件安装,就会有Pipeline组件)

3.不集成Github的Pipeline代码

这种方式,直接把写好的Pipeline代码拷贝到Pipeline对应的Jenkins页面上,经常用这个方式来进行本地Debug和单元测试。

选择上面创建好的这个Pipeline Job,点击Confige, 到达配置界面,点击Pipeline,然后把代码帖进去,点击保存,具体参考下图。

pipeline {agent any stages {stage('Build') { steps {println "Build" }}stage('Test') { steps {println "Test" }}stage('Deploy') { steps {println "Deploy" }}}
}

上面这个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,可能就会报错,构建失败。

Jenkins高级篇之Pipeline语法篇-2-第一个Pipeline脚本练习相关推荐

  1. Jenkins高级篇之Pipeline语法篇-7-Declarative Pipeline指令:triggers/stage/tool

    本篇继续学习Declarative Pipeline的相关指令,本篇学习三个指令,分别是触发器(triggers),stage和tool.触发器主要是方便周期控制自动化提交,stage是在stages ...

  2. Jenkins高级篇之Pipeline技巧篇-1-小白搭建Pipeline项目开发环境

    之前,有人和我说,pipeline教程这里,关于如何创建pipeline的git项目和,如何在jenkins上做pipeline的测试这块,在前面文章交代不清楚.这里我补上一篇,通过这一篇,小白也能开 ...

  3. jenkins pipeline之语法篇

    目录 一.为什么使用pipeline 二.常用的指令 agent stages stage steps parameters script 三.不太常用的指令 environment input po ...

  4. Postgresql学习笔记-高级语法篇

    Postgresql学习笔记-高级语法篇 Postgresql 约束 Postgresql约束用于规定表中的数据规则. 如果存在违反约束的数据行为,行为会被约束终止. 约束可以在创建表的时候就规定(通 ...

  5. 学习MongoDB 十一: MongoDB聚合(Aggregation Pipeline基础篇上)(三)

    一.Aggregate简介 db.collection.aggregate()是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组.过滤等功能,然 ...

  6. Jenkins Pipeline 语法

    目录 声明性pipeline Sections agent pipeline与stage中的不同 参数 常用选项 发布 post stages steps Directives environment ...

  7. FPGA笔记之verilog语言(基础语法篇)

    文章目录 FPGA笔记之verilog语言(基础语法篇) 1. verilog 的基础结构 1.1 verilog设计的基本单元--module 1.2 module的使用 1.3 I/O的说明 1. ...

  8. Linux开发者的CI/CD(3)jenkins pipeline语法学习

    备注:由于我不是专职的devops工程师,所以学习jenkins本着够用的原则即可.但作为一个高级软件工程师,学会写pipeline是必须的. pipeline翻译成流水线,在Unix/Linux系统 ...

  9. Flutter开发指南之理论篇:Dart语法04(库,异步,正则表达式)

    总目录 Flutter开发指南之理论篇:Dart语法01(数据类型,变量,函数) Flutter开发指南之理论篇:Dart语法02(运算符,循环,异常) Flutter开发指南之理论篇:Dart语法0 ...

最新文章

  1. python怎么设置环境变量_百度经验_如何在Python中设置环境变量
  2. Verilog中inout端口的使用方法
  3. 千位亿万富豪调研:六成富豪担心继承人婚姻问题致财富外流
  4. Portable PostgreSQL
  5. win7普通家庭版硬盘分区
  6. 小程序的防盗链 VS 反盗链 - 总结篇
  7. Solaris11 磁盘分区
  8. TCP超时设置的客户端重发5次
  9. 毕设日志——查看系统基本信息的linux命令
  10. python自制语音识别_今天的语音识别,我们就用Python来做,从基础的知识到实践的运用...
  11. arraylist 初始化_ArrayList - 遍历ArrayList的三种方法
  12. java 创建bean_java – 使用spring按需创建bean
  13. 关于代理服务器的原理及用法
  14. ExtJS初学——renderTo/applyTo区别
  15. ant design pro 异步请求后台接口
  16. 读懂Windows的“虚拟内存”为你量身定制
  17. 彻底删除浏览器毒霸首页
  18. 石灰窑计算机控制上料,石灰窑自动化控制系统
  19. 统计字符串中字符ch出现的次数c语言,C语言与汇编的嵌入式编程:统计字符串中各字符出现的次数...
  20. js 鼠标悬浮div显示tip,离开tip消失,不用单独写鼠标离开事件

热门文章

  1. 速上谷歌地图数据管理软件操作图文教程
  2. 第一章:什么是英特网
  3. Objective-C修改运动步数
  4. 中望3D 2021出图进阶版-3D出图技巧合集
  5. 自定义Seebar进度条、进度条背景颜色,更换进度滑动icon。
  6. 2023年全国最新会计专业技术资格精选真题及答案36
  7. 风险管理,未雨绸缪——《代码之殇》读书笔记II
  8. 【机房练习赛 5.15】奇袭 CF526F Pudding Monsters
  9. 顶尖游戏设计师陈星汉:虚拟世界的架构观
  10. 进入路由器linux系统时间长,linux 路由器限速实现方法教程