当前位置:网站首页>Jenkins - Pipeline 概念及创建方式
Jenkins - Pipeline 概念及创建方式
2022-06-28 00:15:00 【wumingxiaoyao】
引言
Jenkins 是实现 CI/CD 的工具,CI/CD 可视为流水作业,怎么把一个个流水作业串起来并有序执行呢,这就涉及到 Jenkins Pipeline,参考 Jenkins Pipelien 官网,本文将介绍有关 Jenkins Pipeline 的概念及创建方式,具体 Pipeline 的语法等不会涉及到,将在下节详细介绍。
内容提要:
- 什么是 Jenkins Pipeline
- Jenkins Pipeline 创建方式
Blue Ocean
UI 界面
SCM
什么是 Jenkins Pipeline
Jenkins Pipeline 是一套插件,它支持实现和集成持续交付流水线作业到 Jenkins。Pipeline 提供了一组可扩展的工具, 用于通过 Pipeline 领域特定语言(DSL)将简单到复杂的交付流水线建模为“代码”。
Jenkins 1.x 只能通过界来⼿动描述部署 Pipeline。
Jenkins 2.x 开始⽀持 Pipeline as code, 可以通过代码来描述部署流⽔线。
Pipeline 支持两种语法:Declarative 声明式(在 Pipeline 2.5 引入)和 Scripted 脚本式 Pipeline 。两种语法都支持构建持续交付 Pipeline 。两种都可以用来在 web UI 或 Jenkinsfile 中定义 Pipeline ,不过通常认为创建一个 Jenkinsfile 并将其检入源代码控制仓库是最佳实践,更方便版本控制,团队协作,代码重用。
Groovy 脚本语⾔被作为 Pipeline 的默认语, 使用 Groovy 语言结合 DSL 开发的脚本称为 Jenkinsfile。Jenkinsfile 的文件保存任务配置和流水线信息。声明式和脚本式流水线都是 DSL 语言,用来描述软件交付流水线的一部分。 脚本式流水线是用一种限制形式的 Groovy 语法编写的。Jenkins 默认是不支持 Jenkinsfile,需要安装 Pipleline 插件,Jenkins 部署时默认安装建议的插件就包括 Pipeline 插件。
下面这个图是一个持续交付流水线式作业模式的例子:
Jenkins Pipeline 创建方式
可以通过三种方式创建 Pipeline,分别是 Blue Ocean,UI 界面 和 SCM,当然前提条件有 Jenkins 环境并安装了 Pipeline 插件。
Blue Ocean 创建 Pipeline
Blue Ocean 是一个插件,而且是一个皮肤插件。它是一个项目,用来研究下一代 Jenkins 的 UI 界面或者更好的用户体验。说白了,你就可以理解是一个换肤插件。
- 安装 Blue Ocean 插件
首先通过 Manage Jenkins -> Plugin Manageer 进行安装
- 访问 Blue Ocean
安装成功后,Jenkins 首页点击 Open Blue Ocean
- 创建 Pipeline
本地部署的 Jenkins,想创建一个存储在 Git 的 Pipeline,页面太慢了,便放弃了。顺便说一下,一般公司部署的 Jenkins,普通用户未必有权限通过 Blue Ocean 插件创建 Pipeline。注意,通过 Blue Ocean 创建的 Pipeline 实际上是一个 multibranch Pipeline, 将为 repository 上每个 branch 都创建一个 Jenkinsfile。

选择 Git
UI 界面创建 Pipeline
通过这种方式创建的 Jenkinsfile 是存储在 Jenkins 自身(Jenkins home directory)
- New Item

- 输入名字,并选择 Pipeline 类型

- 下拉到 Pipeline Tab,默认选择 Pipeline script
这里选了个 Hello Word 的 sample
- 保存一下,就可以 Build 了

- Console Output

SCM 创建 Pipeline
利用 UI 界面创建复杂的 Pipeline,不便编写和维护脚本。 为了方便,Pipeline Jenkinsfile 可以用文本编辑器或 IDE 编写提交到 SCM (Source Control Manager), Jenkins 可以从 SCM 取出 Jenkinsfile 并执行 Pipeline 脚本。
Jenkins 的配置如下,重复 UI 界面中的 1-2 步骤,第 3 步,下拉到 Pipeline Tab,选择 Pipeline script from SCM,配置 Repository,及 Jenkinsfile 的路径。
边栏推荐
- 【永艺XY椅】试用体验
- 零基礎多圖詳解圖神經網絡
- PV operation primitive
- Lefse analyzes the local implementation method with all installation files and details to ensure success.
- [Yocto RM] 2 - Yocto Project Terms
- Evaluation - rank sum ratio comprehensive evaluation
- 205. 同构字符串
- Can you open an account for stock trading in flush? Is it safe?
- Database query optimization: master-slave read-write separation and common problems
- Deep parsing of kubernetes controller runtime
猜你喜欢

766. 托普利茨矩阵

Evaluation - rank sum ratio comprehensive evaluation

Cesium 点击绘制多边形(动态绘制多边形)
![[Yongyi XY chair] trial experience](/img/9e/9814bf21a79214d21d2a257c725147.jpg)
[Yongyi XY chair] trial experience

Data analysts too hot? Monthly income 3W? Tell you the true situation of this industry with data

什麼是數字化?什麼是數字化轉型?為什麼企業選擇數字化轉型?

Neural network of zero basis multi map detailed map

面试官问:能否模拟实现JS的new操作符

frp实现内网穿透
![[Niuke discussion area] Chapter 4: redis](/img/53/f8628c65890f1c68cedab9008c1b84.png)
[Niuke discussion area] Chapter 4: redis
随机推荐
style中的scoped属性和lang属性
模块化开发
1382. 将二叉搜索树变平衡-常规方法
引用层reboot后的大体流程
[Yocto RM]9 - QA Error and Warning Messages
centos8-操作记录-命令版-yum-redis-mysql-nacos-jdk
Xctf attack and defense world misc wage earner advanced zone
[Yocto RM]3 - Yocto Project Releases and the Stable Release Process
Four classic training modes in comparative learning
pytorch_ lightning. utilities. exceptions. MisconfigurationException: You requested GPUs: [1] But...
MySQL十种锁,一篇文章带你全解析
Adobe Premiere基础-常用的视频特效(裁剪,黑白,剪辑速度,镜像,镜头光晕)(十五)
Cesium 多边形(polygon)extrudedHeight 和 height 的区别
JS 随机数(随机数 小数)
【牛客讨论区】第四章:Redis
Scala 基础 (三):运算符和流程控制
【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩
Overview of drug discovery-01 overview of drug discovery
[Yongyi XY chair] trial experience
Supervised, unsupervised and semi supervised learning