jenkins 构建项目之 pipeline基础教程

一、pipeline 简介

​pipeline ,简单来说,就是一套运行在 jenkins 上的工作流框架。将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程 编排 和 可视化 的工作。

二、pipeline 有哪些好处

  • 代码:pipeline 以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。
  • 持久:无论是计划内的还是计划外的服务器重启,pipeline 都是可以恢复的。
  • 可停止:pipeline 可接受交互式输入,以确定是否继续执行 pipeline。
  • 多功能:pipeline 支持复杂的持续交付角球。支持 fork/join ,循环执行,并行执行任务的功能。
  • 多扩展:pipeline 插件支持其 DSL的 自定义扩展,以及与其他插件集成的多个选项。

三、创建 pipeline 流程步骤

pipeline 脚本由 Groovy 语言实现。

pipeline 支持两种语法:Declarative(声明式脚本)| Scripted Pipeline (脚本式语法)

pipeline 支持两种创建方法:可以直接在 jenkins - GUI 界面中创建。也可以创建在项目源代码根目录当中。

安装 pipline 插件:Pipeline

四、声明式语法

pipeline { :开头声明此脚本是 Declarative式脚本

agent any :模块一,此处填写构建所需的环境,代理,docker环境,kubernetes环境、
maven、jdk工具等等

stages:模块二,阶段记录所有步骤,代表构建项目的阶段开头

​stage:阶段步骤,一个 stages 中包含多个 stage,对应 拉取代码、编译打包、部署发布等等
​
steps:步骤实现,具体实现该步骤的命令,如何通过编写来实现步骤

code:拉取代码
build project:编译打包
publish project:部署上线

入门语法案例:

pipeline {
 agent any  //环境maven、jdk等

 stages {  			//项目构建
  stage('pull code') { 	//拉取代码
   steps {    	//具体实施步骤
    echo 'pull code' 	// 拉取代码命令
   }
  }
  stage('build project') {		// 编译打包
   steps {   		 	//具体实施步骤
    echo 'build project' 	 	// 打包命令
   }
  }
  stage('publish project') { 		// 部署上线
   steps {    		//具体实施步骤
    echo 'publish project' 	// 部署命令
   }
  }
 }
}

五、脚本示语法

node:声明此脚本是Scripted Pipeline

​def mvnHome:指定脚本运行所需要的各种环境、工具等

​stage:指定不同的构建步骤,如拉取代码,编译打包,部署上线等,可以有多个 stage

node {
 def mvnHome
 stage('pull code') {    //步骤一,拉取代码
  echo "pull code"
 }
 stage('Build project') {		 //步骤二,构建打包
  echo "build project"
 }
 stage('publish project') {		 //步骤三,部署上线
  echo "publish project"
 }
}

六、流水线语法

片段生成器:可以自动生产拉取、打包、部署的代码。直接粘贴到 pipeline即可使用。

Declarative Directive Generator:声明式指令生成器。

Declarative Online Documentation:声明式指令官方文档


片段生成器部署上线示例:1、拉取代码:check out from version control


2、编译打包 sh: Shell Script


3、部署上线 deploy: Deploy war/ear to a container


4、水线阶段视图:

流水线脚本管理 Jenkinsfile

流水线脚本有两种写入管理方法:

​1、在 Jenkins - Gui 界面里写

​2、存放在 gitlab代码层,与 src pom.xml 同目录。命名为 Jenkinsfile ( j 必须大写 ) 文件,填写流水线执行步骤。

代码层的 Jenkinsfile ,方便管理,方便备份,不会因为 jenkins宕机丢失整个流水线配置。


然后在 jenkins - GUI 界面 通过 pipeline SCM 连接到 gitlab仓库,获取 Jenkinsfile 文件

到此这篇关于jenkins 构建项目之 pipeline基础教程的文章就介绍到这了,更多相关jenkins pipeline基础内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Jenkins Pipeline 部署 SpringBoot 应用的教程详解

    一. 安装依赖包 yum install -y wget yum install -y gcc-c++ yum install -y zlib-devel perl-ExtUtils-MakeMaker yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker yum install -y openssh-clients yum install

  • 使用Jenkins Pipeline自动化构建发布Java项目的方法

    简介 Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变. 一,创建pipeline项目 二,清除部分历史构建 三,参数化构建 这里使用三个参数,分别对应是否拉取代码,项目名称,以及发版选项 四,编写pipeline脚本 选择pipeline script 编写pipelin

  • jenkins 构建项目之 pipeline基础教程

    一.pipeline 简介 ​pipeline ,简单来说,就是一套运行在 jenkins 上的工作流框架.将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程 编排 和 可视化 的工作. 二.pipeline 有哪些好处 代码:pipeline 以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程. 持久:无论是计划内的还是计划外的服务器重启,pipeline 都是可以恢复的. 可停止:pipeline 可接受交互式输入,以确定是否继续执行 p

  • python基础教程项目三之万能的XML

    这个项目的名称与其叫做万能的XML不如叫做自动构建网站,根据一份XML文件,生成对应目录结构的网站,不过只有html还是太过于简单了,如果要是可以连带生成css那就比较强大了.这个有待后续研发,先来研究下怎么html网站结构. 既然是通过XML结构生成网站,那所有的事情都应该由这个XML文件来.先来看下这个XML文件,website.xml: <website> <page name="index" title="Home page"> &l

  • jenkins+Maven从SVN上构建项目的方法

    一.安装Maven 下载地址:https://maven.apache.org/download.cgi 把下载的安装包解压 tar -xvf apache-maven-3.6.1-bin.tar.gz 配置环境变量 vim /etc/profile export M2_HOME=/usr/local/maven/apache-maven-3.6.1 export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin 使配置文件生效 source /etc/profile

  • jenkins构建go及java项目的方法

    写在前面 jenkins作为java的好基友,经历过单体项目时代->集群项目时代->容器集群分布式时代,使用稳定可靠,cpu友好(就泪存有点儿难看),如果有问题就... (当然这种情况不多(_) ) , 至于后期又有了jenkins x(容器版),对于非容器环境这里这里就不介绍啦 然后简略介绍我自己的项目情况吧,说说我的思路:首先我的项目有一个后台mee(java).mee-api(多个,为Java项目)以及gee-api项目(多个,go项目),后台项目暂不集群分布(目前够用), mee-ap

  • python基础教程项目五之虚拟茶话会

    几乎在学习.使用任何一种编程语言的时候,关于socket的练习从来都不会少,尤其是会写一些局域网的通信的东西.所以书上的这个项目刚好可以练习一下socket编程. 这个练习的整体思路首先有一个聊天的服务器,这个服务器的功能主要是提供客户端socket的连接.存储每个客户端的连接session,处理每个连接发送的消息.解析客户端发送的数据.就这些,至于客户端方面不需要写代码,用系统的telnet工具即可. 我觉得有了上面的分析,剩下的这个程序就没有什么说的了,当然,除了那两个把socket封装的类

  • python基础教程项目四之新闻聚合

    <python基础教程>书中的第四个练习,新闻聚合.现在很少见的一类应用,至少我从来没有用过,又叫做Usenet.这个程序的主要功能是用来从指定的来源(这里是Usenet新闻组)收集信息,然后讲这些信息保存到指定的目的文件中(这里使用了两种形式:纯文本和html文件).这个程序的用处有些类似于现在的博客订阅工具或者叫RSS订阅器. 先上代码,然后再来逐一分析: from nntplib import NNTP from time import strftime,time,localtime f

  • python基础教程项目二之画幅好画

    这是<python基础教程>中的第二个项目,关于python操作PDF. 涉及到的知识点 1.urllib的使用 2.reportlab库的使用 这个例子着实很简单,不过我发现在python里面可以直接在数组[]里面写for循环,真是越用越方便. 下面是代码: from urllib import urlopen from reportlab.graphics.shapes import * from reportlab.graphics.charts.lineplots import Lin

  • 如何使用Jenkins构建GIT+Maven项目

    前言 最近写了一篇博客是关于使用Jenkins来构建SVN+Maven项目 ,这里使用的的代码版本工具是SVN,但是事实上也有很多公司使用GIT来进行代码管理,那么我们如何使用Jenkins去自动发布GIT+Maven项目呢? 正文 Jenkins Jenkins是一个开源的.可扩展的持续集成.交付.部署的基于web界面的平台.允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成. 通常我们使用Jenkins主要实现以下功能: 持续集成指的是,频繁地(一天多次)将代码

  • idea构建web项目的超级详细教程

    目录 1.idea构建web项目 1.新建一个空项目 2.新建java模块,名为webDemo1 3.选择webDemo1右键,选择Add Framework Support 4.在WEB-INF下新建文件夹classes和lib 5.打开项目结构(Project Structure) 6.项目配置 7.模块配置 8.Facets配置,这里制定了web目录不是一个普通的文件夹,而是web项目 9. 配置Artifacts 10. 添加Tomcat 11.配置Deployment. 12.添加项目

  • 基于Node.js的JavaScript项目构建工具gulp的使用教程

    npm install gulp --save-dev 什么是gulp? gulp是新一代的前端项目构建工具,你可以使用gulp及其插件对你的项目代码(less,sass)进行编译,还可以压缩你的js和css代码,甚至压缩你的图片,gulp仅有少量的API,所以非常容易学习. gulp 使用 stream 方式处理内容.Node催生了一批自动化工具,像Bower,Yeoman,Grunt等. gulp和grunt的异同点 易于使用:采用代码优于配置策略,Gulp让简单的事情继续简单,复杂的任务变

随机推荐