jenkins-Pipeline 教程,看这一篇文章就够了

本文介绍了Jenkins Pipeline的基础概念及使用方法,包括创建Pipeline任务的不同方式、Pipeline Script的编写与运行实例,以及Jenkinsfile的基本语法和结构,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~

一、什么是Pipeline

Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化
Pipeline 是Jenkins 2.X 的最核心的特性,帮助Jenkins 实现从CI 到 CD 与 DevOps的转变。
Pipeline 是一组插件,让jenkins 可以实现持续交付管道的落地和实施。持续交付管道是将软件从版本控制阶段到交付给用户/客户的完整过程的自动化表现

二、Pipeline任务

2.1、创建Pipeline任务

  • 新增任务,选择流水线
    在这里插入图片描述

  • Pipeline定义有两种方式:
    一种是Pipeline Script ,是直接把脚本内容写到脚本对话框中;
    另一种是 Pipeline script from SCM (Source Control Management–源代码控制管理,即从gitlab/github/git上获得pipeline脚本–JenkisFile
    在这里插入图片描述

2.2、Pipeline Script 运行任务

  • 脚本如下
pipeline{
    agent any
    stages{
        stage("first"){
            steps {
                echo 'hello world'
            }
        }
        stage("run test"){
            steps {
                echo 'run test'
            }
        }
    }
    post{
        always{
            echo 'always say goodbay'
        }
    }
}

脚本中定义了2个阶段(stage):first和run test;post是jenkins完成构建动作之后需要做的事情。
运行任务,可以看到分为3个部分,如下图所示:
在这里插入图片描述

2.3、Pipeline script from SCM 通过代码库运行任务

将pipeline代码(Jenkinsfile)保存到代码库中,然后通过指定代码位置(脚本位置)的方式来运行pipeline任务。

  1. 创建Jenkinsfile,由Groovy语言实现。一般是存放在项目根目录,随项目一起受源代码管理软件控制。
    在这里插入图片描述
    Jenkinsfile :创建在根目录
    脚本的第二stage 是执行pytestzwf文件下的test_json.py脚本
    将项目提交到代码库。

3.在 job(任务)中配置Pipeline script from SCM
在这里插入图片描述

在这里插入图片描述
运行任务,查看结果:
在这里插入图片描述

三、Jenkinsfile 语法学习

Jenkinsfile 支持两种语法形式:

  • Declarative pipeline – 在pipeline v2.5 之后引入,结构化方式,比较简单,容易上手。这种类似于我们在做自动化测试时所接触的关键字驱动模式,只要理解其定义好的关键词,按要求填充数据即可。入门容易,但是灵活性欠缺。
  • Scripted pipeline – 基于grjoovy的语法,相较于Declarative,扩展性比较高,好封装,但是有些难度,需要一定的编程工具。

Declarative pipeline 语法详解

  • 必须包含在固定格式Pipeline{} 块内,每个声明语句必须独立一行,行尾无需使用分号。
  • 块 blocks{} 只能包含章节(Sections),指令(Directves),步骤(Steps) 或 赋值语句。

agent :节点

  • 必须存在,agent必须在pipeline块内的顶层定义
  • any :可以在任意agent 上执行pipeline
  • none :pipeline 将不分配全局agent,每个stage分配自己的agent
  • label :指定运行节点的label
  • node:自定义运行节点配置,指定label ,指定customWorkspace(工作空间)
  • docker:控制目标节点上的docker运行相关内容
agent any

agent { label 'my-master'}
agent{
	node{
		label "myslave"
		customWorkspace "myworkspace"
	}
}


stages :阶段集

  • 必须存在,包含顺序执行的一个或者多个stage命令
  • 在pipeline内仅能使用一次
  • 需要定义stage的名字

steps :步骤

  • 必须存在
  • steps位于stage指令块内部,包含一个或者多个step
stages{
	stage("stage name"){
		steps{
			echo "this is a step"
		}
	}
}

post :构建后的操作

  • 非必须
  • always:无论pipeline运行的完成的状态如何都会运行
  • success:仅当当前pipeline具有 成功 状态时才运行
  • failure: 仅当当前pipeline 具有 失败 状态时才运行

当然还有其他选项,这里不再做扩展介绍;

parameters :参数

  • 非必须
  • 参数化构建的参数设置,参数类型有booleanParam、choice(选择)、file、text、string 等
parameters{
        string( name :'name',defaultValue:'beauty',description:'姓名是')
}

等同于如下设置:
在这里插入图片描述
构建时效果如下:
在这里插入图片描述

triggers :触发器

  • 非必须
  • 定义了pipeline自动化触发的方式
  • cron:接受一个cron风格的字符串来定义pipeline触发的常规间隔
  • pollSCM:接受一个cron风格的字符串来定义jenkins检查SCM源更改的常规间隔;如果存在新的更改,则pipeline将被重新触发
triggers{
	cron('*/1 * * * *')
}

每隔一分钟执行一次

triggers{
	pollSCM('*/1 * * * *')
}

每隔一分钟监控SCM源,更改即触发
在这里插入图片描述


文末说明
推荐博文:接口测试经典面试题:Session、cookie、token有什么区别?

### 回答1: Jenkins pipeline 是一种基于 Jenkins 的工作流自动化管理方法。它允许用户在 Jenkins 中定义流水线,并通过简单的语法将构建、测试和部署等步骤组合在一起。 教程: 1.安装 Jenkins Pipeline 插件。 2.在 Jenkins 中新建一个项目,在项目配置中选择 "Pipeline"。 3.在 "Pipeline" 选项卡中编写 Jenkinsfile,它包含了流水线的定义。 4.在 Jenkinsfile 中定义各个步骤,如构建、测试和部署等。 5.保存并构建项目。 参考资料: - Jenkins Pipeline 文档:https://jenkins.io/doc/book/pipeline/ - Jenkins Pipeline 示例:https://jenkins.io/doc/pipeline/examples/ - Jenkins Pipeline 插件:https://plugins.jenkins.io/pipeline-plugin/ ### 回答2: Jenkins是一个开源的持续集成工具,而Jenkins Pipeline是其最强大的功能之一,可以帮助用户来定义和管理持续集成过程中的流水线,从而提高软件开发的效率和质量。 Jenkins Pipeline可以使得持续集成过程更加自动化、可重用、可管理。它允许用户在Jenkins中定义一个或多个stage(阶段),每个stage又由一系列步骤(step)组成。这些步骤可以是常规Shell脚本、Jenkins插件或者外部工具。 在创建一个Jenkins Pipeline时,用户可以使用Groovy语言编写pipeline脚本,这意味着你可以在脚本中定义一个或多个pipeline阶段,并使用Groovy语言编写每个阶段执行的命令。JenkinsPipeline插件提供了很多Groovy库用来完成各种任务,如构建源代码、测试、发布到服务器等。 通过Pipeline,用户可以创建复杂的流水线,比如在构建和测试之后自动更新和发布运行环境; 或者在不同的条件花时间执行不同的任务,比如分支检出、集成测试和部署。 在Jenkins Pipeline的使用中,还有一些其他的概念需要掌握,例如agent(代理),环境变量和日志记录。agent是执行Pipeline的主机和环境,你可以让Jenkins自动选择一个运行环境,或者手动指定。环境变量是在Pipeline执行期间用来定义变量的,你可以使用环境变量来在不同的stage和步骤中共享信息。日志记录是在Pipeline执行期间产生的并包含了执行过程中的各种信息,如构建的结果、执行的命令和错误消息等。 在这里,需要注意的是,要系统地学习Jenkins Pipeline,建议您首先学习Groovy语言和Jenkins插件。这样,您就可以在脚本中尽可能使用Jenkins插件以及一些常见的流程控制方法(例如条件语句和循环),从而达到更好的自动化效果。 总之,Jenkins Pipeline在持续集成领域中有着广泛的应用,它可以使得软件开发人员能更轻松和更高效地管理和控制各种任务。希望以上的解释可以帮助您理解Jenkins Pipeline的基本概念和使用方法,让您在软件开发的过程中更高效地实现持续集成和自动化部署。 ### 回答3: Jenkins PipelineJenkins平台上的一种可扩展的工作流定义引擎,它允许用户在Jenkins上构建、测试并部署他们的应用程序。Pipeline可以作为Jenkins的插件安装,用户可以根据自己的需求定义流水线,可以使用多种编程语言编写并可以创建可重用的组件。Pipeline搭建在Jenkins的核心API,可以用于将其现有的插件进行整合,以实现更高级的流水线设计。 Jenkins Pipeline先进之处,在于它将整个开发、测试和部署过程集成到一个流水线中,自动化了软件开发生命周期,相比传统的构建方式,更加灵活、可控制性更高、容易复用,可以处理复杂的构建过程,并且可以可视化输出,方便开发人员查看进度。 Jenkins Pipeline的基础组件包括Stage和Step,Stage负责描述流水线中的阶段,相当于工作流程中的步骤,Step是Jenkins Pipeline的基本单元,包括一组需要执行的相关工作任务,比如构建、测试等。Pipeline支持多种语言,包括Groovy、Java等,用户可根据自己的偏好选择。 在构建Pipeline过程中,用户可以使用Jenkins提供的DSL语言,它允许用户编写管道脚本来定义流程。用户还可以利用Jenkins Pipeline的图形化界面(Blue Ocean)来构建和管理流水线,可以轻松地将各个状态的任务可视化展现,从而更有效地管理和优化整个软件开发过程。 总之,Jenkins Pipeline是一个可扩展的、可重用和可定制的工作流引擎,通过它可以自动化构建、测试和部署软件,提高软件生产效率和质量。无论是想要优化软件交付的DevOps工程师、开发人员还是系统管理员等,都可以从Jenkins Pipeline中受益。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨水的早晨

程序媛也得攒钱植发啊~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值