【Jenkins】pipeline基本使用

news2024/11/17 17:55:22

目录

一、pipeline

二、创建pipeline项目

1、安装pipeline插件

2、创建pipeline项目

三、pipeline语法

1、pipeline组成

2、agent:指定流水线的执行位置,流水线中每个阶段都必须在某个地方执行

3、stage:阶段,代表流水线的阶段,每个阶段都必须要有名称,且各个名称不能重名

4、stages:stage的集合,stages部分至少包含一个stage

5、steps:代表stage阶段中的一个或者多个步骤,steps部分至少包含一个步骤

2、pipeline其他指令

1、post:包含的是在整个pipeline或stage完成后的附加步骤

2、environment:用于设置环境变量,可定义在stage或pipeline部分,环境变量可以设置为全局的,也可以设置为阶段级别(stage)的

3、tools:可定义在pipeline或stage部分,配置我们指定的工具,并将其加入到PATH变量中(工具名称必须在Jenkins的全局工具配置中存在)

4、options:用于配置Jenkins pipeline本身的选项,options指令可以定义在stage或pipeline部分

5、parameters:在构建前定义参数化构建,支持booleanParam, choice, credentials, fifile, text,password, string等参数类型

6、triggers:定义执行pipeline的触发器


一、pipeline

用户可以在一个 Jenkinsfile 中快速实现一个项目的从构建、测试以及到发布的完整流程,灵活方便地实现持续交付,并且可以保存和管理这个Jenkinsfile的定义。

从Jenkins V2.0版本开始,Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变。

【自由风格任务】对比【流水线】

Freestyle Jobs Pipeline
通过UI页面配置通过代码配置(groovy开发的,基于java的脚本语言)
配置变化不能追溯可以通过SCM(代码版本管理)追溯
迁移需要重新创建任务方便任务配置迁移
每个任务对应每个阶段(构建、测试、发布)单个任务中完成所有阶段的编排

二、创建pipeline项目

1、安装pipeline插件
2、创建pipeline项目

三、pipeline语法

Jenkins Pipeline通常会写入到一个文本文件中(称为Jenkinsfile),该文件可以通过SCM(代码版本管理)系统管理(比如从Git上拉取脚本)

  • 脚本式(Scripted Pipeline)—— 比如一些if判断等逻辑,脚本式里面不能包含声明式

  • 声明式(Declarative Pipeline)—— 一般用这个比较多,官方也比较推荐,声明式里面可以包含脚本式,更简单更加结构化的语法,官网推荐使用

1、pipeline组成

基本结构:以下每一部分都是必须的,少一个Jenkins都会报错

pipeline {
    agent any  //表示在哪个节点运行:任意

    stages {
        stage('Hello') {   //名字各不相同
            steps {
                echo 'Hello World'  //具体要做的事情
            }
        }
        
        stage('Hello1') {
            steps {
                echo 'Hello World1'
            }
        }
    }
}

1、pipeline:代表整条流水线,包含整条流水线的逻辑

2、agent:指定流水线的执行位置,流水线中每个阶段都必须在某个地方执行
  • none : 当在pipeline块的顶层使用none时,将不会为整个Pipeline运行分配全局agent ,每个stage部分将需要包含其自己的agent部分

  • any : 在任何可用的agent 上执行Pipeline或stage

  • label : 指定具体的 Jenkins Slave Node,也可以单独指定Stage的执行环境

3、stage:阶段,代表流水线的阶段,每个阶段都必须要有名称,且各个名称不能重名
4、stages:stage的集合,stages部分至少包含一个stage
5、steps:代表stage阶段中的一个或者多个步骤,steps部分至少包含一个步骤

2、pipeline其他指令

1、post:包含的是在整个pipeline或stage完成后的附加步骤
  • always:无论pipeiline运行的完成状态如何都会执行这段代码

  • changes:只有当前pipeline运行的完成状态与先前完成的pipeline的状态不同时,才会执行

  • failure:当前完成状态为失败时执行

  • success:当前完成状态为成功时执行

  • unstable:当前完成状态为不稳定时执行(测试失败/代码违规问题)

  • aborted:当流水线被手动终止时

post{
  always { 
    echo 'will always execute' 
        } 
}
2、environment:用于设置环境变量,可定义在stage或pipeline部分,环境变量可以设置为全局的,也可以设置为阶段级别(stage)的
environment { aaa = 'bbb' }//定义环境变量 

${env.JOB_NAME} //访问Jenkins内置变量 

${env.aaa} //访问自定义变量
3、tools:可定义在pipeline或stage部分,配置我们指定的工具,并将其加入到PATH变量中(工具名称必须在Jenkins的全局工具配置中存在)
tools { maven 'maven3.6.1'}
4、options:用于配置Jenkins pipeline本身的选项,options指令可以定义在stage或pipeline部分
options{ 
	buildDiscarder(logRotator(numToKeepStr:'3')) //保存最近历史构建记录的数量 
	timeout(time:1,unit:'HOURS')//job执行的超时时间 
	disableConcurrentBuilds()//禁止job同时执行 
	retry(3)//失败重试次数 
	}
5、parameters:在构建前定义参数化构建,支持booleanParam, choice, credentials, fifile, text,password, string等参数类型
parameters{ 
  choice(name:'environ',choices:'test\ndev\nstg', description:'请选择测试环境 dev? test? stg?')
  string(name:'version',defaultValue:'0.0.0',description:'当前构建版本号') 
}
  
${params.environ}//通过 params访问对应参数
6、triggers:定义执行pipeline的触发器
triggers { 
    cron('0 19 * * 1-5') 
    pollSCM('0 */2 * * 1-5') 
}

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

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

相关文章

牛客——牛可乐的翻转游戏(状压,dfs)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 牛可乐发明了一种新型的翻转游戏! 在一个有 nnn 行 mmm 列的棋盘上,每个格子摆放有一枚棋子,每一枚棋子的颜色要么是黑色,要么是白色。…

Simulink|光伏阵列模拟多类故障(开路/短路/阴影遮挡/老化)

目录 主要内容 模型研究 1.正常模型 2.断路故障 3.短路故障 4.阴影遮挡 5.老化模型 结果一览 1.U-I曲线 2.P-V曲线 下载链接 主要内容 该模型为光伏阵列模拟故障情况simulink模型,程序实现了多种故障方式下的光伏阵列输出功率-电压-电流关系特…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Radio组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Radio组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Radio组件 单选框,提供相应的用户交互选择项。 子组件 无。 接口 …

【前端素材】bootstrap4实现移动端电商APP页面 MobileShop(附源码)

一、需求分析 移动端电商网页是指为移动设备(如智能手机和平板电脑)优化设计的电子商务网页。它是在线商店的移动版本,旨在提供方便的购物体验和无缝的移动端操作。 移动端电商网页通常具有以下功能: 商品展示:移动端…

25.云原生ArgoCD高级之app of apps模式

文章目录 app of apps 模式介绍app如何管理apphelm方式管理kustomize方式管理 app of apps 模式介绍 通过一个app来管理其他app,当有多个项目要发布创建多个app比较麻烦,此时可以创建一个管理app,管理app创建后会创建其他app。比较适合项目环…

docker部署docker管理工具easydockerweb

重要提示 功能比较少,建议体验一下即可 安装 docker run -it -d -p 10041:3000 -e EDW_USERNAMEadmin -e EDW_PASSWORDadmin -v /var/run/docker.sock:/var/run/docker.sock qfdk/easydockerweb 使用 概览 镜像管理 容器管理

VS编译器对scanf函数不安全报错的解决办法(详细步骤)

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…

使用pandas将excel转成json格式

1.Excel数据 2.我们想要的JSON格式 {"0": {"raw_data1": "Sam","raw_data2": "Wong","raw_data3": "Good","layer": "12v1"},"1": {"raw_data1": "Lucy…

Redis(三)(实战篇)

查漏补缺 1.spring 事务失效 有时候我们需要在某个 Service 类的某个方法中,调用另外一个事务方法,比如: Service public class UserService {Autowiredprivate UserMapper userMapper;public void add(UserModel userModel) {userMapper.…

AR人脸106240点位检测解决方案

美摄科技针对企业需求推出了AR人脸106/240点位检测解决方案,为企业提供高效、精准的人脸识别服务,采用先进的人脸识别算法和机器学习技术,通过高精度、高速度的检测设备,对人脸进行快速、准确地定位和识别。该方案适用于各种应用场…

Vue-53、Vue技术vuex使用

vuex 是什么 1、概念 专门在Vue 中实现集中式状态(数据)管理的一个Vue 插件,对vue 应用中多个组件的共享状态进行集中式的 管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。2、…

大数据Zookeeper--案例

文章目录 服务器动态上下线监听案例需求需求分析具体实现测试 Zookeeper分布式锁案例原生Zookeeper实现分布式锁Curator框架实现分布式锁 Zookeeper面试重点选举机制生产集群安装多少zk合适zk常用命令 服务器动态上下线监听案例 需求 某分布式系统中,主节点可以有…

发现本地Elasticsearch版本 不兼容第三方管理工具 带大家在官网中寻找并下载指定版本的Elasticsearch

我们在 springboot 整合Elasticsearch时可能会出现版本不兼容异常 首先 大家要搞清楚 目前 Elasticsearch(ES)与springboot 市场版本互相的兼容情况 可以参考我的文章 springboot与Elasticsearch版本兼容对比 这里 我们想下载 其他版本 还是访问官网 https://www.elastic.co/…

探索LLM的意图识别能力

不可否认的是,LLM(例如 OpenAI 的 GPT 系列)将在不断发展的对话式 AI 领域发挥重要作用。 关于使用 ChatGPT 执行各种任务的帖子和文章不计其数。 GPT 有几个关键功能值得进一步探索,例如其摘要、分类和生成文本的能力。 其中&…

U盘误删的文件怎么找回?5个宝藏方法分享!

“我想问问大家,在使用u盘时如果不小心把很重要的文件删除了应该怎么办呀?有什么简单又快速的U盘文件恢复方法可以推荐吗?” U盘作为一种便携式的存储设备,在日常工作中扮演着重要的角色。然而,如果不小心误删了U盘中的…

SpringBoot:自动配置报告

自动配置报告demo:点击查看 LearnSpringBoot03AutoConfig 点击查看更多的SpringBoot教程 一、application.properties代码 #开启springboot debug模式 #自动配置报告 #Positive matches: 自动配置类启用了(自动配置类匹配上了)&#xff0c…

hexo和github.io博客的搭建

简要: 最近在牛客网上看到有很多应届毕业生大佬的求职简历上都写上了自己的博客地址,并且在acwing上看到图图佬,铅笔佬也有自己的博客地址,大部分都采用了自己搭建博客的方式,而不是用脏乱差的csdn来写博客。所以我也采…

电脑服务器离线安装.net framework 3.5解决方案(错误:0x8024402c )(如何确定当前系统是否安装NET Framework 3.5)

问题环境: 日常服务的搭建或多或少都会有需要到NET Framework 3.5的微软程序运行框架,本次介绍几种不同的安装方式主要解决运行在Windows 2012 以上的操作系统的服务。 NET Framework 3.5 是什么? .NET Framework是微软公司推出的程序运行框架…

利用LLM大模型生成sql的深入应用探究

Chat2DB 是一款有开源免费的多数据库客户端工具,和传统的数据库客户端软件Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力,能够将自然语言转换为 SQL,也可以将 SQL 转换为自然语言,可以给出研发人员 SQL 的优化建议,极大地提升…

YOLO-World——超级轻量级开放词汇目标检测方法

前言 目标检测一直是计算机视觉领域中不可忽视的基础挑战,对图像理解、机器人技术和自主驾驶等领域具有广泛应用。随着深度神经网络的发展,目标检测方面的研究取得了显著进展。尽管这些方法取得了成功,但它们存在一些限制,主要体…