备注:由于我不是专职的devops工程师,所以学习jenkins本着够用的原则即可。但作为一个高级软件工程师,学会写pipeline是必须的。
pipeline翻译成流水线,在Unix/Linux系统中经常用到,Pipeline将一个命令/程序/进程的输出发送到另一个命令/程序/进程,以进行进一步处理。比如:cat test.txt | grep test1。Jenkins 中的Pipeline借用了Unix/Linux中的 Pipeline思路,实现像流水线一样来调度Jenkins任务,通过Jenkinsfile来描述整个持续集成流程。
Jenkinsfile就是描述pipeline的脚本文件。
pipeline支持两种语法:声明式Declarative和脚本式,声明式比较简单,也基本满足我们的需求,所以非专业人事建议学习声明式语法即可。
Scripted pipeline - 脚本式流水线语法,基于 Groovy语言构建的通用 DSL(Domain-specific language,领域特定语言)
Declarative pipeline - 声明式流水线语法,在v2.5之后引入,支持结构化方式,提供了更丰富的语法特性。
声明式语法包括以下核心流程:
1.pipeline : 声明其内容为一个声明式的 pipeline 脚本
2.agent: 执行节点(job 运行的 slave 或者 master 节点)
3.stages: 阶段集合,包裹所有的阶段(例如:编译,打包,部署等各个阶段)
<