我们提供安全,免费的手游软件下载!
Pipeline是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。它通过Domain Specific Language(DSL) syntax定义Pipeline As Code并且实现持续交付的目的。
Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变。
注:Jenkins 1.0 只能通过UI界面手动操作来“描述”流水线; Jenkins 2.0 开始支持pipeline as code。
为什么要使用Pipeline:
1. 代码:Pipeline以代码的形式实现,通过被捡入源代码控制,使团队能够编译,审查和迭代其CD流程。
2. 可连续性:Jenkins重启或者中断后都不会影响Pipeline job。
3. 停顿:Pipeline可以选择停止并等待人工输入或者批准,然后在继续Pipeline运行。
4. 多功能:Pipeline支持现实世界的复杂CD要求,包括fork、join子进程,循环和并行执行工作的能力。
5. 可扩展:Pipeline插件支持其DSL的自动扩展以及其插件集成的多个选项。
Pipeline结构快速解析:
Jenkins Pipeline的脚本语法是由Groovy语言实现,学习成本较低,简单易学。目前Jenkins Pipeline支持两种语法:
声明式Pipeline基本语法和表达式遵循Groovy语法,但是有以下例外:
由大括号括起来的语句:如 Pipeline{}, Sections{}, parameters{}, script{}
通常包括一个或者多个指令或步骤 如 agent,post,stages,steps
environment, options, parameters, triggers, stage, tools, when
执行脚本式Pipeline,如script{}
Jenkins Pipeline包含两类元素:stages和steps。如下图:
Stage:阶段,一个Pipeline可以划分成若干个Stage,每个Stage代表一组操作,例如:“Build”,“Test”,“Deploy”。注意,Stage是一个逻辑分组的概念,可以跨多个Node。
Step:步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供,例如:sh ‘make’ Node:节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行环境。
pipeline{
agent any
stages {
stage('Build') {
steps{
echo 'This is a build step'
}
}
stage('Test') {
steps{
echo 'This is a test step'
}
}
stage('Deploy') {
steps{
echo 'This is a deploy step'
}
}
}
}
Pipeline编写的辅助工具:
重放Pipeline,可以修改script,修改后的不存入config.xml
如下图所示,插件按照后需要配置如下参数:
Ctrl+Shift+P
执行如下命令,对编写的Jenkinsfile进行校验
❯ jdp check data/valid/complex-deployment/Jenkinsfile
Checking: data/valid/complex-deployment/Jenkinsfile
Looks valid! Great work!
热门资讯