Pipeline快速入门
Pipeline快速入门
- 什么是Pipeline
- 使用条件
- Pipeline 定义
- Pipeline语法
什么是Pipeline
先介绍下什么是Jenkins 2.0,Jenkins 2.0的精髓是Pipeline as Code,是帮助Jenkins实现CI到CD转变的重要角色。什么是Pipeline,简单来说,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套Groovy DSL,任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持从代码库直接读取脚本,从而实现了Pipeline as Code的理念。
Pipeline的几个基本概念:
Stage: 阶段,一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作。注意,Stage是一个逻辑分组的概念,可以跨多个Node。
Node: 节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行期环境。
Step: 步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供。
本节介绍Jenkins Pipeline的一些核心概念,并介绍在运行的Jenkins实例中定义和使用Pipelines的基础知识。
使用条件
要使用Jenkins Pipeline,需要:
Jenkins 2.x或更高版本
Pipeline插件
Pipeline 定义
Pipeline脚本是用Groovy写的 。Groovy语法将在后续文档中介绍。
可以通过以下任一方式创建基本Pipeline:
pipeline script:直接在Web UI的script输入框里面输入pipeline script语句即可,参考说明可以点击输入框下边的Pipeline Syntax,里面有很多示例操作说明,非常好用。
pipeline script from SCM:需要配置SCM代码存储Git地址或SVN地址,指定script文件Jenkinsfile所在路径,每次构建job会自动去指定的目录执行script文件
以上两种方法定义Pipeline的语法都是一样的。
在Web UI中定义Pipeline
要在Jenkins Web UI中创建基本Pipeline Job,请按照下列步骤操作:
单击Jenkins主页上的New Item。
输入Pipeline的名称,选择Pipeline,然后单击确定。
在脚本文本区域中,输入Pipeline,然后单击保存。
单击“构建历史记录”下的#buildId,然后单击控制台输出以查看Pipeline的完整输出
在SCM中定义pipeline
复杂的Pipeline难以在Pipeline配置页面的文本区域内进行写入和维护。为了解决这一问题,jenkins Pipeline支持在文本编辑器中编写脚本文件jenkinsFile,Jenkins可以通过从SCM选项的控件中加载Pipeline脚本。
选择SCM选项中的Pipeline脚本后,不要在Jenkins UI中输入任何Groovy代码; 只需指定要检索的Pipeline脚本的路径。更新指定的存储库时,只要Pipeline配置了SCM轮询触发器,就会触发一个新构建。
—文本编辑器,IDE,GitHub等将使用Groovy代码进行语法高亮显示, 第一行Jenkinsfile应该是#!/usr/bin/env groovy Jenkinsfile。
内置文档
Pipeline配有内置的文档功能,可以更轻松地创建不同复杂性的Pipeline。根据Jenkins实例中安装的插件自动生成和更新内置文档。
内置文档可以在全局范围内找到: localhost:8080/pipeline-syntax/,假设您有一个Jenkins实例在本地端口8080上运行。同样的文档也作为pipeline语法链接到任何配置的Pipeline的侧栏中项目。
代码段生成器
内置的“Snippet Generator”程序有助于为单个步骤生成代码段。
Snippet Generator动态填充Jenkins实例可用的步骤列表。可用的步骤数量取决于安装的插件,它明确地暴露了在Pipeline中使用的步骤。
要使用代码段生成器生成步骤代码片段:
1、从配置的流水线或本地主机:8080 / pipeline-syntax导航到Pipeline语法链接Pipeline Syntax
2、在“ Sample Step”下拉菜单中选择所需的步骤,使用“Sample Step”下拉列表下方的动态填充区域配置所选步骤,如message为“hello world”,单击生成Pipeline脚本以创建一个可以复制并粘贴到Pipeline中的Pipeline代码段
全局变量引用
除了代码片段生成器之外,Pipeline还提供了一个内置的“ 全局变量引用”。像Snippet Generator一样,它也是由插件动态填充的。与代码段生成器不同的是,全局变量引用仅包含Pipeline提供的变量,这些变量可用于Pipeline。
在Pipeline中默认提供的变量是:
ENV
Pipeline脚本可访问的环境变量,例如: env.PATH或env.BUILD_ID。请参阅内置的全局变量,以获取管道中可用的完整和最新的环境变量列表。
PARAMS
将为Pipeline定义的所有参数公开,例如:params.MY_PARAM_NAME。
currentBuild
可获取当前正在执行的Pipeline job的信息,例如属性currentBuild.result,currentBuild.displayName等等
引用官方文档:https://jenkins.io/doc/book/pipeline/getting-started/
Pipeline语法
https://blog.csdn.net/weixin_37689012/article/details/105636061
Pipeline快速入门相关推荐
- .Net Core 3.0 IdentityServer4 快速入门02
.Net Core 3.0 IdentityServer4 快速入门 -- resource owner password credentials(密码模式) 一.前言 OAuth2.0默认有四种授权 ...
- .Net Core 3.0 IdentityServer4 快速入门
一.简介 IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架. 将IdentityServer4部署到您的应用中具备如下特点: 1).认 ...
- ELK系列(1) - Elasticsearch + Logstash + Kibana + Log4j2快速入门与搭建用例
前言 最近公司分了个ELK相关的任务给我,在一边学习一边工作之余,总结下这些天来的学习历程和踩坑记录. 首先介绍下使用ELK的项目背景:在项目的数据库里有个表用来存储消息队列的消费日志,这些日志用于开 ...
- (十一) ELK快速入门
本文为学习笔记,主要用于记录本人学习过程.部分内容为转载!!!!. ELK快速入门一-基本部署 ELK简介 什么是ELK?通俗来讲,ELK是由Elasticsearch.Logstash.Kibana ...
- python_爬虫 16 Scrapy框架之(二)快速入门
目录 一.安装和文档: 二.快速入门: 1.创建项目: 2.目录结构介绍: 3.使用Scrapy框架爬取糗事百科段子: 使用命令创建一个爬虫: 爬虫代码解析: 修改settings.py代码: 简单运 ...
- 【物体检测快速入门系列 | 01 】基于Tensorflow2.x Object Detection API构建自定义物体检测器
这是机器未来的第1篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/124745966 CSDN话题挑战赛第1期 活动详情地址 ...
- 手把手带你快速入门超越GAN的Normalizing Flow
手把手带你快速入门超越GAN的Normalizing Flow 作者:Aryansh Omray,微软数据科学工程师,Medium技术博主 机器学习领域的一个基本问题就是如何学习复杂数据的表征是机器学 ...
- 生物信息通识课 - 让实验者了解生信,让生信人快速入门
生物信息在生物研究中应用越来越多,生物各个分支的学生和教师不可避免与生信打些交道,简单到使用在线工具查找基因的功能,在线工具做些常规分析,到设计一个高通量测序实验,从公司提供的报告中分析结果,再到自己 ...
- Netty系列(2)快速入门Netty线程模型、Netty入门程序、Netty任务队列
文章目录 1 Netty线程模型 1.1 传统阻塞 I/O 服务模型 1.2 Reactor线程模型 1.2.1 单 Reactor 单线程模型 1.2.2 单Reactor多线程 1.2.3 主从 ...
- Shiro第一个程序:官方快速入门程序Qucickstart详解教程
目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...
最新文章
- 一、Cocos2dx在visualStudio或者vc++中环境搭建(入门篇)
- python local variable_python学习笔记 - local, global and free variable
- License分类 + 引入开源软件时License的注意事项
- Python3.6 IDLE 使用 multiprocessing.Process 不显示执行函数的打印
- 用C语言模拟栈(简单实现)
- service启动activity_「 Android 10 四大组件 」系列—Service 的 quot; 启动流程 quot;
- python-演练-通过描述符来控制另一个类的实例化参数
- 【EMNLP2020】一种多层对多层的BERT蒸馏方法
- HTML5——锚点链接
- 请非技术人员不要对技术人员说这很容易实现
- 【优化预测】基于matlab差分进化算法优化BP神经网络预测【含Matlab源码 1315期】
- java移位操作示例
- java环境变量设置图解_Java环境变量一键配置操作方法
- 从本地管理员到域管理员提权
- Android多点触控之——MotionEvent(触控事件)
- 浅谈黑盒测试和白盒测试
- php落伍,一贴学会PHP 为落伍的MJJ们量身定做的教程
- Python 注册表作业制作
- 视觉学习笔记6——YOLOv5(v6.2)部署与代码理解
- python精通大学_小白21天精通Python是如何做到的?