实用指南:Jenkins Pipeline 快速开始

news/2025/11/27 18:42:24/文章来源:https://www.cnblogs.com/yangykaifa/p/19279098

一、Jenkins Pipeline 介绍

Jenkins Pipeline 是 Jenkins 的核心插件,用于将软件交付流程(如构建、测试、部署等)定义为可重用、可版本化、可视化的自动化流水线。它通过代码形式(通常是 Groovy 语法)描述整个流程,支持复杂的持续集成 / 持续部署(CI/CD)场景,且流水线定义(Jenkinsfile)可以与代码一起存入版本控制系统(如 Git),实现 “流水线即代码”(Pipeline as Code)。Pipeline 支持两种语法格式:声明式(Declarative Pipeline)和 脚本式(Scripted Pipeline)。

1、优点

  1. 可扩展性:支持复杂流程(如并行执行、条件判断、循环、异常处理等),满足多样化的 CI/CD 需求。
  2. 可维护性:流水线定义以代码形式存储,便于版本控制、评审和复用,避免手动配置的繁琐。
  3. 持久化:即使 Jenkins 重启或构建中断,流水线状态也能保留,支持从断点继续执行。
  4. 可视化:通过 Jenkins 界面直观展示流水线进度、阶段和步骤,便于问题排查。
  5. 集成性:无缝对接 Jenkins 生态的插件(如 Git、Docker、Kubernetes 等),扩展能力强。

2、声明式流水线(Declarative Pipeline)

声明式流水线是 Jenkins 2.5 后推出的简化语法,旨在提供结构化、易读的流水线定义方式。它更接近自然语言,适合大多数标准化的 CI/CD 流程。

核心特点:

  • 固定结构:必须包含在 pipeline 块中,且有明确的阶段划分(agent、stages、steps 等关键字)。
  • 声明式语法:通过关键字描述 “是什么”(如 agent any 表示在任意节点执行),而非 “怎么做”。
  • 内置功能:提供 post 块(定义构建后操作,如成功 / 失败通知)、environment(环境变量)、options(流水线选项)等简化配置的关键字。

示例:

pipeline {agent any  // 在任意可用节点执行environment {VERSION = '1.0.0'  // 定义环境变量}stages {stage('Build') {  // 构建阶段steps {sh 'echo "Building version ${VERSION}"'sh 'mvn clean package'}}stage('Test') {  // 测试阶段steps {sh 'mvn test'}}}post {  // 构建后操作success {echo 'Pipeline succeeded!'}failure {echo 'Pipeline failed!'}}
}

3、脚本式流水线(Scripted Pipeline)

脚本式流水线基于 Groovy 脚本语法,提供更灵活的编程能力,适合复杂、定制化的流程。它更接近传统编程,允许使用 Groovy 的控制结构(如 if-else、for、try-catch 等)。

核心特点:

  • 灵活语法:通过 node 块定义执行节点,无固定结构,可自由组合步骤和逻辑。
  • 编程式控制:支持 Groovy 的所有语法,适合处理动态逻辑(如根据条件选择不同部署环境)。
  • 低约束性:没有声明式的关键字限制,需要手动处理更多细节(如错误处理)。
示例:
node {  // 在节点上执行def version = '1.0.0'  // 定义变量stage('Build') {sh "echo 'Building version ${version}'"sh 'mvn clean package'}stage('Test') {sh 'mvn test'}// 构建后判断if (currentBuild.currentResult == 'SUCCESS') {echo 'Pipeline succeeded!'} else {echo 'Pipeline failed!'}
}

4、区别

维度声明式流水线脚本式流水线
语法风格结构化、声明式(关键字驱动),类似配置文件编程式(Groovy 脚本),类似代码逻辑
灵活性约束性强,适合标准化流程高度灵活,适合复杂、定制化流程
可读性语法简洁,易读易写,适合新手依赖 Groovy 知识,可读性取决于代码质量
错误处理内置 post 块和 options 简化处理需手动编写 try-catch 等逻辑
扩展性依赖预定义关键字,扩展需通过插件可直接调用 Groovy 库和 Jenkins API,扩展性更强
适用场景常规 CI/CD 流程(如构建→测试→部署)复杂逻辑(如动态阶段、条件分支、并行任务嵌套)

5、总结

  • 声明式流水线:推荐新手或标准化流程使用,语法简单、结构清晰,降低维护成本。
  • 脚本式流水线:适合需要高度定制化的场景,灵活但需掌握 Groovy 语法,适合复杂逻辑实现。

实际使用中,两者也可结合(如声明式中嵌入 script 块执行脚本式逻辑),平衡易用性和灵活性。

二、快速案例

Pipeline 5 个必备组成部分

  • pipeline:声明它所包含的内容为一个声明式的pipeline脚本。
  • agent:Jenkins 可以有主从节点,构建起 Jenkins 集群。agent 关键字用来指定 job 执行的节点。不同的节点具有的环境不同,有些节点有 maven 环境,有些节点有 Gradle,所以需要 agent 来指定 job 运行的节点。
  • stages:阶段集合,包裹所有的阶段(例如:打包,部署等各个阶段)。
  • stage:  阶段,被 stages 包裹,一个 stages 可以有多个 stage。
  • steps:  步骤,为每个阶段的最小执行单元,被 stage 包裹。

1、新建流水线任务

Dashboard > 新建 Item 

2、配置流水线

Dashboard > first-pipeline >Configuration

可以选择的流水线定义有两种:

Pipeline script:自己在下面编辑框内编写流水线脚本。

Pipeline script from SCM:从版本管理系统(如:Git)中拉取已经写好的 Jenkinsfile,实现流水线配置的可版本化。 

  • 我们选择 Pipeline script

在右侧下拉选项中,选择 Hello World,以此为基础,编写一个简单的流水线脚本。

脚本如下:

pipeline {agent anystages {stage('拉取代码') {steps {echo '拉取代码结束'}}stage('执行构建') {steps {echo '执行构建结束'}}}
}

agent any 表示当前构建任务可以运行在任一节点上。由 Jenkins 自己决定。

3、运行流水线

保存完流水线后,立即构建

构建完点击任务

点击流水线视图

可以看到 Jenkins 为我们呈现的可视化的流水线,包括每个阶段的耗时以及打印的日志,还可以选择某一阶段重新运行。

4、安装 Blue Ocean 插件

除了 Jenkins 原生的流水线视图外,我们还可以安装 Blue Ocean 插件,它提供了更丰富的功能,和更美观的界面。

Dashboard > Manage Jenkins > Plugins > Available plugins

下载完成后返回首页

打开 Blue Ocean

三、实战案例

Jenkins 实战2:pipeline 流水线实现自动化部署

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

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

相关文章

2025年下半年特氟龙喷涂、聚四氟乙烯喷涂、陶瓷喷涂、碳化钨喷涂、聚四氟乙烯管道设备厂家口碑推荐

摘要 2025年下半年,碳化钨喷涂行业在工业耐磨、防腐领域持续创新,技术进步推动市场需求增长。本文基于行业调研和用户反馈,整理出一份推荐榜单,旨在为采购商提供参考。榜单排名不分先后,仅作推荐用途,重点介绍各…

两款开源PLC软件推荐,ARMxy系列完美适配!

在过去,PLC(可编程逻辑控制器)几乎是工业自动化的“高墙”。要么买昂贵的品牌硬件,要么用封闭的编程环境。但在开源浪潮的推动下,这堵墙正在被慢慢推倒。 如今,一台树莓派、一块嵌入式主板、一个开源PLC软件,就…

251127

251127活在村子里的人羡慕城市的生活,原先脚能踩到真实的土地,现在住在不天不地的房子里,偶尔有阳光渗进来,没有种菜的地方,这间屋子就是都市人的坟墓,这个小区就像是没有蚁后的蚁穴,并不是真的没有蚁后,只是蚁…

2025年下半年特氟龙喷涂、聚四氟乙烯喷涂、陶瓷喷涂、碳化钨喷涂、聚四氟乙烯管道设备厂家综合评估与选购指南

摘要 随着工业耐磨防护需求的持续增长,2025年下半年碳化钨喷涂市场呈现技术升级和服务细分趋势。本文基于行业调研数据,为寻求碳化钨喷涂服务的企业提供五家值得关注的供应商参考清单(排名不分先后),其中成都市晨…

2025年下半年菜籽油/粮油批发/植物油/食用油批发厂家口碑前五推荐

2025年下半年,菜籽油行业持续发展,消费者对健康、绿色食用油的需求增长,推动批发市场扩大。本文基于综合评估,推荐五家菜籽油批发厂家,排名不分先后,旨在为您提供参考。榜单仅供参考,实际选择需结合自身需求,我…

成都动力无限:深耕十五载,以专业短视频代运营赋能企业增长

成都动力无限:深耕十五载,以专业短视频代运营赋能企业增长在数字经济浪潮席卷全球的今天,短视频已成为企业营销与品牌建设的核心阵地。据《2023年中国短视频行业研究报告》显示,短视频用户规模已突破10亿,企业通过…

2025年下半年特氟龙喷涂、聚四氟乙烯喷涂、陶瓷喷涂、碳化钨喷涂、聚四氟乙烯管道设备厂家综合推荐指南

摘要 随着工业防腐技术的快速发展,聚四氟乙烯喷涂行业在2025年下半年呈现出明显的技术升级趋势。本文基于市场调研和行业数据分析,为有需求的用户提供五家优质服务商推荐,排名不分先后,每家企业在技术实力、服务质…

android studio,java 语言。新建了任务,在哪儿设置 app 的名字和 logo。

android studio,java 语言。新建了任务,在哪儿设置 app 的名字和 logo。pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family:…

3 天从 0 入门 SQL:交易所 Market Surveillance 实战速成(Wash Trading / Spoofing / Pump Dump)

适合岗位: Market Surveillance Intern / Market Risk Analyst / Data Analyst / Quant Intern 适合人群: 没有 SQL 基础 / 有基础但不会写复杂查询 / 想在简历写“熟练 SQL”这套教程不是通用 SQL,而是 专为交易所…

保姆级教程!PaddleOCR-VL 私有化部署全流程,109 种语言 SOTA 模型直接用

Hello,大家好,最近在部署 PaddleOCR-VL 的过程中,发现了一个容易被忽视的点:PaddleOCR-VL 实际上由两个模型组成——版面检测模型(Layout Detection)和 VLM(Vision-Language Model)。目前huggingface提供的 vL…

2025年下半年拖车绳/三股绳/拖拉绳/弹力绳工厂 top 5 推荐

拖车绳作为车辆救援和运输领域的关键配件,2025年下半年的行业需求持续增长,尤其在高强度、耐用性和定制化方面表现突出。本文基于市场调研和用户反馈,整理出一份推荐前五的拖车绳工厂榜单,旨在为采购商提供参考。榜…

怎样减少库存对资金的占用?企业老板最该先解决的,其实就是这三件事

怎样减少库存对资金的占用? 在中小企业做供应链久了,你会发现一个很扎心的现象: 仓库越大,库存越多;库存越多,现金越紧。 老板每天都在问一句话: “我们到底是做生意,还是把钱堆在仓库里?” 今天我只讲三个最…

容器终端常用命令

文件和目录查看 ls 命令 - 列出文件和目录 ls # 列出当前目录文件 ls -l # 详细列表格式 ls -la # 显示所有文件(包括…

深入解析:批量替换文件内容麻烦?Windows小工具5步搞定,效率提升80%

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Raney 引理小记

内容:对于一个长度为 \(n\) 和为 \(1\) 的整数序列 \(a\), 其循环移位中有且仅有一个满足所有前缀和 \(>0\)。 证明:不会。 应用:推导卡特兰数:应用括号序列那个例子 ( 为 \(1\) ) 为 \(-1\),在开头插入一个 \…

2026年石家庄/邯郸/邢台/保定/沧州/廊坊/衡水农村自建房推荐榜,图南建房宝领衔 六家实力公司赋能乡村宜居生活

一、引言:冀中南七市自建房进入“地域精准适配与智能建造升级时代” 十年前,石家庄、邯郸等冀中南七市的农村建房还深陷“本村工匠牵头、手绘草图施工”的粗放模式。这片横跨太行山东麓、华北平原腹地与滨海冲积平原…

2025年下半年拖车绳/三股绳/拖拉绳/弹力绳厂家前五推荐

随着汽车保有量持续增长和户外活动需求上升,2025年下半年拖车绳市场呈现稳定增长态势。本文基于行业调研和用户反馈,整理出五家值得关注的拖车绳生产企业推荐清单,排名不分先后,仅供参考选择。特别说明:本推荐榜单…

可视化图解算法70:缺失的第一个正整数

对于LeetCode数据结构与算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。1.题目 牛客网 面试笔刷 TOP101 | LeetCode 41. 缺失的第…

头大的内存泄漏

头大的内存泄漏function LoadTemplateJsonFromDB(ATemplateID: Integer): TJSONObject;//注意返回对象 varQ: TFDQuery;S: string;RootVal: TJSONValue;RootArr: TJSONArray; beginResult := nil;Q := TFDQuery.Create…

金蝶ERP制造业行业实施专家榜:专精特新企业如何选择行业经验丰富的服务商?

对于制造业企业而言,ERP系统的选型和实施远比其他行业复杂。它不仅要求财务、供应链的基础功能,更需要深度集成PLM(产品生命周期管理)、MES(制造执行系统)等核心环节,实现从设计到交付的全流程数字化。因此,选…