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基础内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-07-22

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

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

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

dubbo整合springboot新手入门教程详解

前言 目前互联网公司,大部分项目都是基于分布式,一个项目被拆分成几个小项目,这些小项目会分别部署在不同的计算机上面,这个叫做微服务.当一台计算机的程序需要调用另一台计算机代码的时候,就涉及远程调用.此时dubbo就粉末登场了. 搭建工程 idea新建工程后,删除src文件夹,然后在gradle文件中输入 buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }

详解jenkins自动部署springboot应用的方法

最近公司在利用jenkins自动部署springboot应用,以前别人配的那个jenkins虽说可以正常部署,但是多次反复部署之后jenkins会报错,提示内存不足: Maven JVM terminated unexpectedly with exit code 137 原因是因为jenkins没有配置部署新的应用前先把旧的应用进程先kill掉而导致在服务器上有多个应用进程.因此自己决定摸索如何配置jenkins可以每次部署都把旧进程kill掉再启动新进程. 安装Jenkins 安装命令: s

Spring Boot启动过程(五)之Springboot内嵌Tomcat对象的start教程详解

标题和Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动很像,所以特别强调一下,这个是Tomcat对象的. 从TomcatEmbeddedServletContainer的this.tomcat.start()开始,主要是利用LifecycleBase对这一套容器(engine,host,context及wrapper)进行启动并发布诸如configure_start.before_init.after_start的lifecycleEvent事件给相应的监听器(如

springboot配置内存数据库H2教程详解

业务背景:因soa系统要供外网访问,处于安全考虑用springboot做了个前置模块,用来转发外网调用的请求和soa返回的应答.其中外网的请求接口地址在DB2数据库中对应专门的一张表来维护,要是springboot直接访问数据库,还要专门申请权限等,比较麻烦,而一张表用内置的H2数据库维护也比较简单,就可以作为替代的办法. 环境:springboot+maven3.3+jdk1.7 1.springboot的Maven工程结构 说明一下,resource下的templates文件夹没啥用.我忘记

Spring boot项目部署到云服务器小白教程详解

本篇文章主要介绍了Spring boot项目部署到云服务器小白教程详解,分享给大家,具体如下: 测试地址:47.94.154.205:8084 一.Linux下应用Shell通过SSH连接云服务器 //ssh 用户名@公网IP ssh josiah@ip // 输入密码 二.开始搭建SpringBoot的运行环境 1.安装JDK并配置环境变量 1) 打开JDK官网 www.oracle.com 2) 找面最新对应的JDK版本,下载 这里要注意的一个问题是:云服务器下载JDK时一定要在本地去ora

Springboot访问html页面的教程详解

1. 在原有的项目resouces目录下创建static包,并在static下创建pages,然后在pages包下hello.html. 这时你会发现hello.html并没有在static中,它跑哪去了呢?打开src下的webapp,发现有一个hello.htm,删除web.xml,并将hello.html用鼠标左键移到static目录下; hello.html代码: <!DOCTYPE html> <html> <head> <meta charset=&qu

SpringBoot整合Swagger和Actuator的使用教程详解

前言 本篇文章主要介绍的是SpringBoot整合Swagger(API文档生成框架)和SpringBoot整合Actuator(项目监控)使用教程. SpringBoot整合Swagger 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. Swagger 介绍 Swagger 是一套基于 OpenAPI 规范构建的开源工具,可以帮助我们设计.构建.记录以及使用 Rest API.Swagger 主要包含了以下三个部分: Swagger Editor:基于浏览器的编辑器,我们

Vue+Koa2 打包后进行线上部署的教程详解

最近使用Vue和Koa2重构了自己的博客,过程中踩了不少坑,查了很多资料,最后总算成功上线.之后我计划围绕这个过程写一系列文章,讲讲如何用Vue+Koa2写一套网站. 而现在,先来讲讲最后一步,在写完Vue和Koa2后,如何将它们部署到线上. 1.将Vue和Koa2结合 很多人在打完包后就不知道怎么做了,毕竟后面都是后端的事情.如果你用的是Vue-cli3.0,那么打包这一步会非常简单,只需要执行一条命令即可,其它的不用关心: npm run build 之后会生成一个dist的文件夹,将它放到

Spring Boot启动过程(六)之内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动教程详解

StandardEngine[Tomcat].StandardHost[localhost]的启动与StandardEngine不在同一个线程中,它的start: // Start our child containers, if any Container children[] = findChildren(); List<Future<Void>> results = new ArrayList<>(); for (int i = 0; i < childre

使用 Docker 搭建 Laravel 本地环境的教程详解

Laravel 官方提供 Homestead 和 Valet 作为本地开发环境,Homestead 是一个官方预封装的 Vagrant Box,也就是一个虚拟机,但是跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢,现在有了 docker 这种更好的方式,可以轻松方便的搭建整套 PHP 开发环境. 本文就介绍如何使用 docker 搭建 Laravel 本地环境. 安装 docker 首先安装 docker. 克隆 laradock laradock 官方文档: http://