Jenkins的Pipeline流水线

目录

前言

流水线概念

什么是流水线

Jenkins流水线

pipeline

node

stage

step

创建一个简单的流水线

创建Pipeline项目

选择模板

测试


前言

        提到 CI 工具,首先想到的就是“CI 界”的大佬——Jenkjns,虽然在云原生爆发的年代,蹦出来了很多云原生的 CI 工具,但是都不足以撼动 Jenkins 的地位。在企业中对于持续集成、持续部署的需求非常多,并且也会经常有-些比较复杂的需求,此时新生的 CI 工具不足以支撑这些很复杂的需求。但是 Jenkins丰富的插件基本上可以满足任何场景。

流水线概念

什么是流水线

        Jenkins 流 水 线 是 一 套 插 件 , 它 支 持 在 Jenkins 中 实 现 和 集 成 持 续 交 付 流 水 线(ContinuousDeliveryPipeline)。流水线提供了一组可扩展的工具,用于通过 Pipeline DSL 将简单到复杂的交付流水线以代码的形势展现,类似于基础设施即代码。

        持续交付流水线会经历一个复杂的过程:从版本控制、向用户和客户提交软件、软件的每次变更(提交代码到仓库)到软件发布(Release)。这个过程包括以一种可靠并可重复的方式构建软件,以及通过多个测试和部署阶段来开发构建好的软件(称为 Build)。

        Jenkins 流水线的定义被写在一个文本文件中(一般为 Jenkinshle),该文件“定制”了整个构建软件的过程. Jenkinsfile 也可以被提交到项目的代码仓库中,在 Jenkjns 中可以直接引用。将持续交付流水线作为应用程序的一部分,像其他代码一样进行版本化和审查,这是流水线即代码的基础。

创建 Jenkinsfile 并提交到代码仓库中的好处如下:

  • 自动为所有分支创建流水线构建过程。
  • 在流水线上进行代码复查/迭代。
  • 对流水线进行审计跟踪。
  • 流水线的代码可以被项目的多个成员查看和编辑。
  • 可以对 Jenkinsfile 进行版本控制。

Jenkins流水线

        Jenkins 流水线主要分为声明式分和脚本式两种,包含 pipline(流水线)、node(节点)、stage(阶段)、step(步骤)等区块。

pipeline

        pipeline 是用户定义的一个持续交付(CD)流水线模型。流水线的代码定义了整个构建过程,包括构建、测试和交付应用程序的阶段。另外,pipeline 块是声明式流水线语法的关键部分。

node

        node 是—个机器,它是 Jenkins 环境的-部分,另外,node 块是脚本化流水线语法的关键部分。

stage

        stage 块定义了在整个流水线的执行任务中概念不同的子集(比如 Bujld、Test、Deploy 阶段),它被许多插件用于可视化 Jenkins 流水线当前的状态/进展。

step

        本质上是指通过一个单一的任务告诉 Jenkins 在特定的时间点需要做什么,比如要执行 shell 命令,可以使用 sh SHELL_COMMAND。其运行里程如下图所示:

        从上文可以了解,Jenkins 流水线分为脚本式和声明式,而声明式是“新一代”的流水线, 比脚本式更加灵活,可读性更强,并且声明式流水线支持以图形化的方式进行编辑,所以声明式流水线是着重学习的对象。

创建一个简单的流水线

创建Pipeline项目

选择模板

在定义中选择“Pipline script”,模板使用“Hello World”

  • stages:代表整个流水线的所有执行阶段。通常 stages 只有 1 个,里面包含多个 stage
  • stage:代表流水线中的某个阶段,可能出现 n 个。一般分为拉取代码,编译构建,部署等阶段。
  • steps:代表一个阶段内需要执行的逻辑。steps 里面是 shell 脚本,git 拉取代码,ssh 远程发布等任意内容。

agent 指定了流水线的执行节点。

参数:

  • any 在任何可用的节点上执行 pipeline。
  • none 没有指定 agent 的时候默认。
  • label 在指定标签上的节点上运行 Pipeline。
  • node 允许额外的选项。

根据流水线或阶段的完成情况而运行(取决于流水线中 post 部分的位置).

post 支持以下post-condition 块中的其中之一: always, changed, failure, success, unstable, 和 aborted。这些条件块允许在 post 部分的步骤的执行取决于流水线或阶段的完成状态。

  • always 无论流水线或者阶段的完成状态。
  • changed 只有当流水线或者阶段完成状态与之前不同时。
  • failure 只有当流水线或者阶段状态为”failure”运行。
  • success 只有当流水线或者阶段状态为”success”运行。
  • unstable 只有当流水线或者阶段状态为”unstable”运行。例如:测试失败。
pipeline {agent anystages {stage('Example') {steps {echo 'Hello World'}}}post {always {echo 'I will always say Hello again!'}}
}

测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive的窗口函数

定义: 聚合函数是针对定义的行集(组)执行聚集,每组只返回一个值.如sum()、avg()、max() 窗口函数也是针对定义的行集(组)执行聚集,可为每组返回多个值.如既要显示聚集前的数据,又要显示聚集后的数据.步骤: 1.将记录分割成多个分区. 2.在各个分区上调用窗…

word-表格疑难杂症诊治

一、用表格进行排版图片、制作公文头 可以在插入图片时固定列宽 二、表格中的疑难杂症 问题一:表格超过页面,右侧文字看不见 解决:表格窗口-布局-自动调整-根据窗口自动调整表格 问题二:表格底部文字被遮挡 解决:布…

【linux】yumvim工具理解使用

目录 Linux 软件包管理器 yum 关于 rzsz 注意事项 查看软件包 Linux开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 简单vim配置 配置文件的位置 sudo提权 Linux 软件包管理器 yum 1.yum是什么&#xff1…

攻防世界---web---warmup

1、题目描述 2、查看源码,发现有个source.php 3、访问该文件,得到这一串代码 4、分析代码 5、访问hint.php,提示flag在ffffllllaaaagggg这个文件下 6、构造payload ?filesource.php?/../../../../../../ffffllllaaaagggg

Fitting Parameterized Three-Dimensional Models to Images

摘要 基于模型的识别和运动跟踪依赖于解决投影和模型参数,使其最佳适应匹配的2D图像特征的3D模型的能力。本文将当前的参数求解方法扩展到处理具有任意曲面和任意数量的内部参数(表示关节、可变尺寸或表面变形)的对象。开发了数值稳定化方法…

懒人网址导航页 search.html SQL注入漏洞复现

0x01 产品简介 懒人网址导航系统是一种智能化的网址导航平台,旨在帮助用户快速找到所需的网址和资源。该系统提供了智能化的网址搜索和推荐功能,能够根据用户的搜索习惯和偏好推荐相关的网址和资源。同时,系统还提供了网址分类、网址收藏和网址分享等功能,方便用户管理和共…

简易Docker磁盘使用面板Doku

这个项目似乎有 1 年多没更新了,最后发布版本的问题也没人修复,所以看看就行,不建议安装 什么是 Doku ? Doku 是一个简单、轻量级的基于 Web 的应用程序,允许您以用户友好的方式监控 Docker 磁盘使用情况。Doku 显示 D…

南京沁恒微USB HUB CH334/CH335多种封装规格选择,外围简单,价格还美丽

概述: CH334 和 CH335 是符合 USB2.0 协议规范的 全速,下行端口支持 USB2.0 高速 480Mbps 个 TT 分时调度 4 个下行端口),还支持高性能的 工业级设计,外围精简,可应用于计算机和工控机主板 特点&#xff1…

精品UI响应式视频教程知识付费系统源码在线教育网络课程在线点播可二开分销分站功能

这是一款知识付费平台模板,后台可上传本地视频,批量上传视频连接, 视频后台可设计权限观看,免费试看时间时长,会员等级观看,付费观看等功能, 也带软件app权限下载,帮助知识教育和软件…

域名邮箱是什么?怎么注册公司的域名邮箱?

拥有一个专业、独特的邮箱地址不仅能提升企业形象,还能增强客户信任感。域名邮箱是什么?域名邮箱也称为企业邮箱或定制邮箱,是一种基于企业自主域名设置的电子邮件服务。本文将详细介绍域名邮箱的概念、优势以及如何注册公司的域名邮箱 一、…

事务的ACID是什么及扁平化事务、链式事务

一、什么是事务 1.事务(Transaction)是区别于数据库文件系统的重要特性之一。事务会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时,可以确保要么所有修改都已经保存,要么所有修改都不保存。 2.InnoDB存储引擎中的事物完…

详解HTML

目录 1.HTML 结构 1.1认识HTML标签 1.2标签层次结构 1.3快速生成代码框架 2.HTML常见标签 2.1注释标签 2.2标题标签:h1-h6 2.3段落标签:p 2.4换行标签:br 2.5格式化标签 2.6图片标签:img 2.7超链接标签 2.8表格标签…

全域运营是本地生活的下半场?新的创业风口来了?

随着全域概念的兴起,全域运营赛道也逐渐进入人们的视野之中,甚至有业内人士预测,全域运营将会是本地生活下半场的大趋势。 之所以这么说,是因为全域运营作为包含了公域和私域内所有运营业务的新模式,不仅能同时做所有本…

设计模式-解释器模式

作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 定义 解释器模式(Interpreter Pattern&…

Nginx企业级负载均衡:技术详解系列(9)—— Nginx核心配置详解(全局配置)

你好,我是赵兴晨,97年文科程序员。‍‍‍‍‍ 在 Nginx企业级负载均衡:技术详解系列(8)—— Nginx核心配置详解(默认配置文件)文章中,咱们讨论了Nginx核心配置文件的基础知识&#…

STM32控制HC-SR04超声模块获取距离

欢迎入群共同学习交流 时间记录:2024/5/23 一、模块介绍 (1)引脚介绍 VCC:电源引脚,接单片机3.3/5V GND:电源地 Trig:超声信号触发引脚 Echo:超声信号接收引脚 (2&…

给你一把接口响应断言神器,你要不要?

JSON Schema是用来标记和校验JSON数据,类似于XMLSchema,可用在自动化测试验证JSON数据。 官网:http://json-schema.org/ 最常用版本:draft 04。(目前各类编程语言对draft 04支持最广泛) 举个例子 假如你有一个接口…

202473读书笔记|《但愿呼我的名为旅人:松尾芭蕉俳句300》——围炉夜话,身顿心安,愿每个人都能在爱里自由驰骋

202473读书笔记|《但愿呼我的名为旅人:松尾芭蕉俳句300》——围炉夜话,身顿心安,愿每个人都能在爱里自由驰骋 😍😍🤩🤩 译者序正文二正文三正文四正文五正文六正文七 《但愿呼我的名为旅人&…

智能进化:让AI大模型变得更聪明的路径探索

前言 随着人工智能(AI)技术的飞速发展,大模型在多个领域展现出了前所未有的能力。然而,它们仍然面临着理解力、泛化能力和适应性等方面的挑战。如何让大模型变得更聪明,是当前AI研究和应用的一个重要课题。本文将探讨…

解除网页禁止选择

控制台输入以下命令 复制:javascript:void(document.body.οncοpy) 可选:javascript:void(document.body.onselectstart) 拖拉:javascript:void(document.body.οnmοuseup)