掌握这个Jenkins插件,离测试开发又近一步!

news2025/4/7 2:56:58

Jenkins Pipeline是一种可编程的、可扩展的持续交付管道,允许您使用脚本来定义整个软件交付过程。

以下是使用Jenkins Pipeline创建和配置流水线的基本步骤。

Part 01.

创建一个Pipeline Job

在Jenkins中创建一个新的"Pipeline"类型的Job。

图片

以下是在Jenkins中创建一个Pipeline Job的详细步骤:

1.登录到Jenkins系统并转到主页。

2.单击“New Item”菜单,选择“Pipeline”选项并指定Job名称。

图片

3.在新建的Job页面中,在“Pipeline”部分中找到“Definition”选项,选择“Pipeline script”。

图片

4.编辑Pipeline脚本:在“Script”区域输入要使用的Pipeline脚本。您可以手动编写脚本,也可以使用外部存储库或特定的DSL语言编写脚本。

5.配置Pipeline参数(可选):您可以通过单击“Add Parameter”按钮来添加参数,例如字符串、布尔值、文件等。这些参数可以在构建过程中使用,并且利于您编写更灵活的Pipeline脚本。

6.指定“Agent”:在Pipeline脚本中,您需要定义在哪个节点上运行该Pipeline。

您可以使用默认的“Any”节点,也可以使用其他节点,如特定操作系统、Docker容器、云平台等。在Pipeline Job设置页面的“Pipeline”部分中,可以为每个阶段指定不同的代理。

7.保存和运行:单击“Save”按钮以保存Pipeline Job。您可以点击 “Build Now”按钮开始立即构建,或者在后续的Jenkins Job 页面中运行Pipeline Job。

总之,创建Pipeline Job需要编辑Pipeline脚本、指定代理节点、配置参数等。

通过Jenkins Pipeline,您可以轻松创建可扩展、灵活和可重复的软件交付流水线,并以可视化方式实时跟踪整个过程。

Part 02.

编写Pipeline脚本

在Pipeline Job中,选择“Pipeline script”选项卡,并输入Pipeline脚本,该脚本描述了整个软件交付过程。

图片

在 Jenkins Pipeline 中编写 Pipeline 脚本需要完成以下几个步骤:

1.定义 Pipeline 块:Pipeline 块是 Pipeline 脚本的根节点,定义了整个软件交付过程。

例如:pipeline { agent any stages { } }。

2.定义 Agent 块:Agent 块定义了 Pipeline 运行的代理节点。可以使用默认的 "any" 节点或者指定特定节点、操作系统、Docker 容器等。

例如:pipeline { agent { docker { image 'maven:3-alpine' args '-v /root/.m2:/root/.m2' } } stages { } }。

3.定义 Stage 块:Stage 块表示 Pipeline 的阶段,每个阶段表示软件交付过程中的一个特定部分。在 Stage 块中可以定义一系列 Step 块。

例如:pipeline { stages { stage('Build') { steps { } } stage('Test') { steps { } } stage('Deploy') { steps { } } } }。

4.定义 Step 块:Step 块表示 Pipeline 中的操作步骤,每个步骤执行一个特定的任务。例如,从代码库中拉取代码、编译代码、运行单元测试、打包应用程序等。可以使用 shell 命令、调用外部脚本等方式来执行具体操作。

例如:pipeline { stages { stage('Build') { steps { sh 'mvn clean package' } } stage('Test') { steps { sh 'mvn test' } } stage('Deploy') { steps { } } } }。

5.添加变量和条件:Pipeline 脚本还支持添加变量、条件语句等高级功能,以实现更灵活的控制流程。例如,可以定义环境变量、判断分支等。

在编写 Pipeline 脚本时,需要注意以下几点:

1.Pipeline 脚本是基于 Groovy 编写的脚本语言,因此需要了解 Groovy 的语法和特性。

2.Pipeline 脚本应该具有良好的可读性和可维护性,可以使用注释、格式化等方式来提高代码质量。

3.Pipeline 脚本应该尽量避免复杂逻辑和过长的代码块,在必要时可以将代码拆分为多个函数或者引用外部库。

总之,编写 Pipeline 脚本是创建可重复、可读性强、易于管理的软件交付流水线的关键步骤,需要认真设计和测试,以确保软件交付过程的质量和效率。

Part 03.

定义Stage

Pipeline是由多个阶段(Stages)组成的,每个阶段表示软件交付过程中的一个特定部分。例如,构建代码、运行测试、部署到服务器等。

在Pipeline脚本中,可以通过编写stage块来定义这些阶段。

图片

1.在 Pipeline 脚本中,通过编写 stage 块来定义每个阶段。每个 stage 块可以包含一个或多个步骤(Steps),用于执行特定的任务。

例如,在构建代码阶段,需要执行编译、静态检查等操作;在测试阶段,需要运行单元测试、集成测试等。在 Pipeline 脚本中,可以使用 stage 块对这些任务进行组织和管理。

2.stage 块的语法如下:

  1. stage('Stage Name') {

  2. steps {

  3. // Steps to be executed in this stage

  4. }

  5. }

其中,'Stage Name' 是该阶段的名称,可以任意指定。steps 块中包含了一系列要执行的任务步骤,可以使用 shell 命令、调用外部脚本等方式来执行具体操作。

3.例如,在以下 Pipeline 脚本中,定义了三个阶段:'Build'、'Test' 和 'Deploy',分别表示编译代码、运行测试和部署应用程序:

  1. pipeline {

  2. agent any

  3. stages {

  4. stage('Build') {

  5. steps {

  6. sh 'mvn clean package'

  7. }

  8. }

  9. stage('Test') {

  10. steps {

  11. sh 'mvn test'

  12. }

  13. }

  14. stage('Deploy') {

  15. steps {

  16. sh 'deploy.sh'

  17. }

  18. }

  19. }

  20. }

在这个例子中,每个阶段都包含了一个 steps 块,用于执行相应的任务。

例如,在 'Build' 阶段中,执行了 'mvn clean package' 命令来编译代码和打包应用程序;在 'Test' 阶段中,执行了 'mvn test' 命令来运行单元测试和集成测试;在 'Deploy' 阶段中,执行了一个名为 'deploy.sh' 的外部脚本用于部署应用程序。

4.通过定义多个 stage 块,可以将软件交付过程分解为多个阶段,并对每个阶段进行精细化管理和控制。同时,在 Jenkins UI 中也可以清晰地看到每个阶段的执行情况和状态,便于用户查看和排查问题。

Part 04.

配置Agent

在Pipeline脚本中,可以通过编写agent块来定义要在哪个节点上执行该Pipeline。例如,在一个具有Docker容器的代理节点上执行Pipeline。

通过以下示例配置Agent:

  1. agent {

  2. docker {

  3. image 'dockerimage'

  4. args '--name myname'

  5. }

  6. }

这里,agent代表Jenkins代理,而docker代表这个代理中启动的容器,image代表要使用的docker镜像,args代表创建容器实例时所使用的参数(如-指定容器的名称)。

编写完成后,我们就可以在这个节点上运行这个Pipeline了。

Part 05.

添加Step

在每个Stage中,需要定义一系列步骤(Steps),每个步骤执行一个特定的任务。

例如,从代码库中拉取代码、编译代码、运行单元测试、打包应用程序等。在Pipeline脚本中,可以通过编写step块来定义这些步骤。

Step块定义步骤,语法如下:step {引用名称}: {插件类型}:{插件动作}。其中,引用名称是可选的,用于在步骤中引用此步骤的ID。

插件类型定义步骤使用的Jenkins插件,而插件动作定义步骤要执行的操作。

示例:step('build') { sh 'mvn clean package' } 上述示例定义了一个名为“build”的步骤,用于清理和打包Maven项目。

图片

Part 06.

运行Pipeline

保存Pipeline Job并开始构建,Jenkins会按照Pipeline脚本中定义的步骤和阶段顺序执行软件交付过程。

图片

1.打开Jenkins控制台,在主UI的“新建项目”下,选择“构建一个自由格式的Pipeline”。

2. 输入项目名称和描述,点击“保存”按钮。

3. 选择“管道脚本从SCM”,显示SCM配置页面,添加脚本提取源,如Github等,以便Jenkins能够获取Pipeline脚本。

图片

4. 选择Pipeline语言,用于编写脚本。几种常用的Pipeline语言是Groovy、Python和Shell。

5. 测试脚本,通过系统输出或日志追踪调试Pipeline脚本,检查它的行为是否与预期相符合。

6. 完成Pipeline脚本的编写,保存Pipeline Job,点击“Build Now”按钮,开始构建。

图片

7. Jenkins会列出每个步骤和工作,并在控制台中显示输出。此外,用户可以在控制台日志中搜索字符串,检查步骤是否成功执行,如果失败,用户可以编辑脚本并重新构建,以纠正失败的节点。

8. 构建完成后,可以检查构建状态以查看每个步骤的成功和失败。检查步骤输出可以确保Pipeline Job可以被正确的执行。

Part 08.

查看Pipeline输出

在Jenkins UI中,您可以查看Pipeine Job的构建历史记录和每个构建的输出日志。

这些输出包括每个阶段和步骤的状态、持续时间、错误信息等等。

您还可以使用CLI来查看Pipeine的输出日志,使用以下命令:

  • 列出所有构建:jb jobs -w

  • 显示构建详情:jb job# -b

  • 您也可以使用REST API获取构建详细信息:GET /job///api/json

您使用此API可以获得每个阶段和步骤的构建日志以及它们的状态信息。

另外,您还可以使用Jenkins UI上的Blue Ocean功能,允许您查看每个阶段及其产生的输出和可视化报告。

图片

总之,使用Jenkins Pipeline,您可以编写可重复、可读性强、易于管理的软件交付流水线,并以可视化的方式跟踪整个流程,从而提高交付质量和效率。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

李开复引领的零一万物开源了Yi-1.5模型,推出了6B、9B、34B三个不同规模的版本

零一万物,由李开复博士引领的AI 2.0公司,近期开源了其备受瞩目的Yi-1.5模型,这一举措再次彰显了公司在人工智能领域的创新实力与开放精神。Yi-1.5模型作为零一万物的重要技术成果,不仅代表了公司在大模型技术研发上的新高度&#…

下载npm I就包错解决方案

npm i xxxx -S --legacy-peer-deps 如果包错就执行以上命令

聚类分析 | 基于GA遗传算法优化kmeans聚类(Matlab)

聚类分析 | 基于GA遗传算法优化kmeans聚类(Matlab) 目录 聚类分析 | 基于GA遗传算法优化kmeans聚类(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GA-kmeans聚类算法,通过GA遗传算法优化kmeans聚类&…

权力集中,效率提升,中心化模式的优势与挑战

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章🔥:探索设计模式的魅力:权力集中…

电子杂志制作攻略,轻松打造高质量数字出版物

随着数字科技的飞速发展,电子杂志作为一种新型的数字出版物,已经越来越受到人们的青睐。它不仅具有丰富的内容、多样的形式,还具有便捷的传播和阅读方式。如今,电子杂志已经逐渐成为企业、媒体和个人展示自身品牌、传播信息的重要…

AI 图像生成-环境配置

一、python环境安装 Windows安装Python(图解) 二、CUDA安装 CUDA安装教程(超详细)-CSDN博客 三、Git安装 git安装教程(详细版本)-CSDN博客 四、启动器安装 这里安装的是秋叶aaaki的安装包 【AI绘画…

自媒体从0-1起号全流程落地指南。(含工具)

下面开始进入主题: 一、持续涨粉的技巧 持续账号的账号通常是具备以下的几种特征 ①利他性:利他性的核心在于你向用户提供了什么? 可以透过逆向思维来体现,首先要明确目标人群及其需求,然后根据这些需求提供必要的…

日本站群服务器的优点以及适合该服务器的业务类型?

日本站群服务器的优点以及适合该服务器的业务类型? 日本站群服务器是指位于日本地区的多个网站共享同一台服务器的架构。这种服务器架构有着诸多优点,使其成为许多企业和网站管理员的首选。以下是日本站群服务器的优点以及适合该服务器的业务类型的分析&#xff1…

Day26 代码随想录打卡|栈与队列篇---有效的括号

题目(leecode T20): 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以…

Ubuntu系统搭建Tipask开源问答系统并发布公网分享好友远程访问

文章目录 1. 前言2.Tipask网站搭建2.1 Tipask网站下载和安装2.2 Tipask网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3 Cpolar稳定隧道(本地设置) 4. 公网访问测试5. 结语…

论文阅读记录--关于水文系统的传递函数

文章目录 J-schuite的文章,地下水系统的响应的功率谱分析--传递函数1. 什么是冲激响应函数与传递函数?2. 地下水流系统中传递函数的求解3. J-schuite文章中传递函数的复现J-schuite的文章,地下水系统的响应的功率谱分析–传递函数 1. 什么是冲激响应函数与传递函数? 在信号…

Java进阶10 IO流

Java进阶10 IO流 IO流就是数据传输。I为input的缩写,表示输入读取;O为out的缩写,表示输出写出。 一、IO流体系结构 ♥巧记区分tips:以Stream结尾的是字节流;以Reader、Writer结尾的都是字符流 二、字节输出流FileOu…

【Flutter】极光推送配置流程(VIVO/OPPO/荣耀厂商通道) 章三

前言 很高兴大家来看小编写的文章~~ 继【Flutter】极光推送配置流程(极光通道/华为厂商/IOS) 章一 继【Flutter】极光推送配置流程(小米厂商通道) 章二 接下配置VIVO/OPPO/华为荣耀的厂商通道 所有截图来源于公司项目,所以会有大量马赛克&am…

【Linux 系统】多线程(生产者消费者模型、线程池、STL+智能指针与线程安全、读者写者问题)-- 详解

一、生产者消费者模型(重点) 如图,在生活中,学生就是消费者角色,工厂是真正的生产者角色,那么超市是什么呢?为什么需要超市?超市是交易场所。我们的家附近不一定有工厂,而…

子元素水平垂直都居中的实现

在网页布局中,如何实现子元素在水平方向和垂直方向居中,如图所示: 我知道的有这样的两种方式: 1.使用弹性布局实现 2.使用定位和平移实现 另外还有以下两种常用情况 3.窗口在整个屏幕水平垂直居中,还可以使用绝对定位…

COMSOL粗略估算计算时间

COMSOL粗略估算模型计算时间 针对反复修改调试的有限元模型,需要大致估算有限元模型的计算时间。经查阅,模型求解的自由度数和求解时间密切相关。 测试条件 测试模型为声-固耦合模型,电脑内存32G,CPU-i7-10700K,核显…

产品经理必备的API技术知识

很多小伙伴在刚成为产品经理的时候已经对自己手中的业务非常熟练了,但还是免不了听到开发的吐槽:“怎么排了这么多需求,这么多接口做都做不完!”产品经理只能一脸懵的表示:接口?那是什么东西?我…

IDEA项目代码修改后不自动生效需要执行mvn clean install才生效

背景 IDEA代码修改之后,启动测试发现不生效,只有重新mvn clean install之后才能加载到改动的代码 解决方法 严重怀疑是idea的配置问题导致的,没有什么特别好的办法,只能删配置重新导入 1、删除 .idea文件夹 以及 所有.iml文件 …

Spring原理

目录 一、Bean作用域 1、Bean作用域概念 2、Bean的六种作用域 3、举例演示bean的几种作用域 二、Bean的生命周期 1、Bean对象的生命周期 2、演示Bean对象的生命周期 三、SpringBoot的自动配置 1、概念 2、spring将对象存入容器中的原理 一、Bean作用域 在前面spring…

洗地机哪个牌子好性价比高又实惠?高性价比洗地机推荐【避坑指南】

洗地机是一种智能清洁家具,具有强大的清洁能力,可快速有效地清洁各种地面污渍,操作简便,省时省力。其一键操作功能使其易于上手,无需频繁清洗拖布和更换水,大大提高了清洁效率。部分高端洗地机还具备智能感…