jenkins —— pipeline基础语法与示例

news2024/12/25 12:21:00

一、Jenkins介绍

 

 

二、Jenkins Pipeline介绍

Jenkins Pipeline总体介绍

1.Pipeline 是Jenkins 2.X核心特性,帮助Jenkins实现从CI到CD与DevOps的转变
2.Pipeline 简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立
运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流
程编排与可视化。

什么是Jenkins Pipeline

1.Jenkins Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。
2.持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完
整过程的自动化表现。
3.软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。

  1. Pipeline提供了一组可扩展的工具,通过Pipeline Domain Specific Language
    (DSL) syntax可以达到Pipeline as Code的目的
  2. Pipeline as Code:Jenkinsfile 存储在项目的源代码库

Why Pipeline?

本质上,Jenkins 是一个自动化引擎,它支持许多自动模式。 Pipeline向Jenkins中添加了一组强大的工具, 支持用例 简单的CI到全面的CD pipeline。通过对一系列的相关任务进行建模, 用户可以利用pipeline的很多特性:

• 代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,
审查和迭代其CD流程。
• 可持续性:Jenkins重启或者中断后都不会影响Pipeline Job。
• 停顿:Pipeline可以选择停止并等待人工输入或批准,然后再继续Pipeline运行。
• 多功能:Pipeline支持现实世界的复杂CD要求,包括fork/join子进程,循环和
并行执行工作的能力。
• 可扩展:Pipeline插件支持其DSL的自定义扩展以及与其他插件集成的多个选项。
 

Pipeline与freestyle区别

  1.Job调度方式
pipeline:通过结构化pipeline 语法进行调度,易于理解与阅读
freestyle:通过jenkins api或者cli进行调度

2.Job显示形式
pipline:提供上帝视角(全局视图)
freestyle:没有视图

Jenkins Pipeline 基础语法

官网链接:https://jenkins.io/doc/

Pipeline 支持两种语法

1.声明式(jenkins2.5新加入的语法)

 特点:
1.最外层必须由pipline{ //do something }来进行包裹
2.不需要分好作为分隔符,每个语句必须在一行内
3.不能直接使用groovy语句(例如循环判断等),需要被script {}包裹

2.脚本式

 特点:
1.最外层有node{}包裹
2.可直接使用groovy语句

Declarative Pipeline(声明式)核心概念

核心概念用来组织pipeline的运行流程

1.pipeline :声明其内容为一个声明式的pipeline脚本
2.agent:执行节点(job运行的slave或者master节点)
3.stages:阶段集合,包裹所有的阶段(例如:打包,部署等各个阶段)
4.stage:阶段,被stages包裹,一个stages可以有多个stage
5.steps:步骤,为每个阶段的最小执行单元,被stage包裹
6.post:执行构建后的操作,根据构建结果来执行对应的操作

根据上面几个概念就能够轻易的创建一个简单的pipeline

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

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

相关文章

GPT-4 的 6 个最佳使用场景

https://www.howtogeek.com/884077/best-uses-for-chatgpt-4/ 作者:SYDNEY BUTLER 无论是在 ChatGPT 中还是通过 API,对 OpenAI 的 GPT-4 模型的访问比 GPT-3.5 限制更多。这意味着你需要慎重考虑在何种情况下使用 GPT-4,并选择性地将最适合…

浙大知识图谱基础:学习笔记

0 基础知识 知识图谱中,知识的结构化表示主要有符号表示和向量表示两类方法。符号表示包括:一阶谓词逻辑,语义网络,描述逻辑和框架系统等。当前主要采用基于图的符号化知识表示,最常用的是有向标记图。 有向标记图分为…

SpringBoot统一功能处理(统一处理用户登陆权限验证、统一异常处理以及统一数据返回格式)

目录 1. SpringBoot统一功能处理简介 2. 统一处理用户登陆验证 2.1 原生SpringAOP实现统一登陆验证的问题 2.2 Spring拦截器实现用户统一登陆验证 2.3 扩展: 统一访问前缀添加 3. 统一异常处理 4. 统一数据返回格式 4.1 统一数据返回格式的必要性 4.2 实现统一数据返…

C++ vector类成员函数介绍

目录 🤔vector模板介绍: 🤔特点: 🤔vector的成员函数: 🔍vector构造函数: 🔍vector赋值函数 🔍vector容器的判断函数 resize函数的重点内容: …

chatgpt赋能python:Python中的并:优化代码执行效率的利器

Python中的并:优化代码执行效率的利器 Python作为一种优秀的编程语言,被广泛使用于各种各样的项目中。然而,随着程序的不断扩张,代码的复杂度日益增加,执行效率也愈加遇到了严峻的挑战。在这种情况下,Pyth…

Linux系统下imx6ull QT编程—— Ubuntu 下编写程序(一)

Linux QT编程 文章目录 Linux QT编程前言一、C简介二、C环境设置1.安装编译 C 语言和 C的环境。2.创建文件编写代码3.编译运行代码 总结 前言 绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一个 C源文件。通过编写最简单的示例“Hello,World QCX”。 一、C简介 C (c…

【分布式应用】ELK企业级日志分析系统

一、ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 1.1 ELK各组件介绍 ElasticSearch: 是基于Lucene(一个…

Scala初识

1.scala简介 是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机)并兼容现有的Java程序。 scala特点 1.Scala是面向对象的 Scala是一种纯粹的面向对象语言,每一个…

Node.js 中的代码调试

目录 1、启用 Inspector 2、安全隐患 3、Inspector 客户端 4、启用远程调试的情形 5、以前的Debugger 1、启用 Inspector 当使用 --inspect 开关时,Node.js 进程开始侦听调试客户端,默认情况下侦听 127.0.0.1:9229 的域名和端口号;每个…

华为OD机试真题B卷 Java 实现【Linux 发行版的数量】,附详细解题思路

一、题目描述 Linux 操作系统有多个发行版,distrowatch.com 提供了各个发行版的资料。这些发行版互相存在关联,例如 Ubuntu 基于 Debian 只开发而 Mint 又基于 Ubuntu 开发,那么我们认为 Mint 同 Debian 也存在关联。 发行版集是一个或多个…

用Python求最大公约数和最小公倍数(51)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 和猫妹学Python,一起趣味学编程。 今日主题 什么是最大公约数? 如何用Python求最大公约数? 什么是最小公倍数? 如何用Pyt…

chatgpt赋能python:Python中的连接符:介绍与应用

Python中的连接符:介绍与应用 在Python编程中,连接符起着关键性的作用,它是连接不同代码部分的纽带。本篇文章将重点介绍几种常用的Python连接符。 一、加号连接符() 加号连接符最常见,用于连接不同的字…

一文读懂TSC时钟: (x86_64/arm64)实现介绍和编程使用

Linux(16)之Time Stamp Counter Author:Once Day Date:2023年5月30日 参考文档: 4. Environment Abstraction Layer — Data Plane Development Kit 23.03.0 documentation (dpdk.org)DPDK: lib/eal/include/generic/rte_cycles.h File Reference测量…

交换机安全功能介绍

今天海翎光电的小编来给大家聊聊以太网交换机安全功能。 交换机作为局域网中最常见的设备,在安全上面临着重大威胁,这些威胁有的是针对交换机管理上的漏洞,攻击者试图控制交换机。有的针对的是交换机的功能,攻击者试图扰乱交换机的…

新手快速学会使用DDL对数据库和表的操作

前言 SQL是一种操作关系型数据库的结构化查询语言。今天这篇文章将详细讲述数据定义语言DDL对数据库和表的相关操作。 文章目录 前言1. DDL-操作数据库1.1 查询1.2 创建数据库1.3 删除数据库1.4 使用数据库2.1 数据类型2.2 查询表2.3 创建表2.4 删除表2.5 修改表 3. 实战案例详…

统计学的假设检验/置信区间计算

假设检验的核心其实就是反证法。反证法是数学中的一个概念,就是你要证明一个结论是正确的,那么先假设这个结论是错误的,然后以这个结论是错误的为前提条件进行推理,推理出来的结果与假设条件矛盾,这个时候就说明这个假…

Navicat 15获取用户的密码

我使用Navicat连接好了mysql但是密码忘记了;可以通过如下操作找回密码 我使用的Navicat版本是 15.0.27 1、选择文件 --> 导出连接 2、选择你要知道密码的连接  勾选导出密码(默认位置是桌面) 3、 在Password 这栏找到加密后的密码 …

基于Android应用开发实现UWB(超宽带)通信

什么是超宽带UWB 超宽带通信是一种无线电技术,专注于设备之间的精确测距(测量位置的精度为 10 厘米)。这种无线电技术可以使用低能量密度进行短距离测量,并在大部分无线电频谱上执行高带宽信号传输。UWB 的带宽大于 500 MHz(或超过 20% 的小数带宽)。 从 Android 13 开…

[GXYCTF2019]Ping Ping Ping解题过程

1、来看看靶场 发现就只有这个提示,尝试一下在url输入框进行测试 页面返回ping的结果,然后我之前也做过另外一道类似的题 链接:[ACTF2020 新生赛]Exec1命令注入_[actf2020 新生赛]exec 1_旺仔Sec的博客-CSDN博客 尝试用管道符 果然是可以的…

chatgpt赋能python:Python中语句太长之续行符的使用

Python中语句太长之续行符的使用 如果你是一位有10年Python编程经验的工程师,那么你一定会遭遇语句太长的问题。这是导致程序出错的常见问题。在很多情况下,一条语句的长度会超过Python规定的最大长度,这时候我们就需要使用续行符进行换行了…