Jenkins项目构建类型--Pipeline流水线项目构建(20200916) 重要

Pipeline简介</DI< div>

1)概念

Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点

的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。 </DI< div>

2)使用Pipeline有以下好处(来自翻译自官方文档):

代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流

程。 持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。 可停止:Pipeline可接

收交互式输入,以确定是否继续执行Pipeline。 多功能:Pipeline支持现实世界中复杂的持续交付要

求。它支持fork/join、循环执行,并行执行任务的功能。 可扩展:Pipeline插件支持其DSL的自定义扩

展 ,以及与其他插件集成的多个选项。 </DI< div>

安装Pipeline插件

Manage Jenkins->Manage Plugins->可选插件</DI< div>

image

安装插件后,创建项目的时候多了“流水线”类型</DI< div>

image

Pipeline语法快速入门 </DI< div>

创建项目 </DI< div>

image

流水线->选择HelloWorld模板</DI< div>

image

生成内容如下:

pipeline {

agent any

stages {

stage('Hello') {

steps {

echo 'Hello World'

}

}

}

}

stages:代表整个流水线的所有执行阶段。通常stages只有1个,里面包含多个stage

stage:代表流水线中的某个阶段,可能出现n个。一般分为拉取代码,编译构建,部署等阶段.

steps:代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码,ssh远程发布等任意内

容。

编写一个简单声明式Pipeline:

pipeline {

agent any

stages {

stage('拉取代码') {

steps {

echo '拉取代码'

}

}

stage('编译构建') {

steps {

echo '编译构建'

}

}

stage('项目部署') {

steps {

echo '项目部署'

}

}

}

}



点击构建,可以看到整个构建过程</DI< div>

image

2)Scripted Pipeline脚本式-Pipeline

创建项目

image

这次选择"Scripted Pipeline</DI< div>

image

node {

def mvnHome

stage('Preparation') { // for display purposes

}

stage('Build') {

}

stage('Results') {

}

}


Node:节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行

环境,后续讲到Jenkins的Master-Slave架构的时候用到。

Stage:阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:

Build、Test、Deploy,Stage 是一个逻辑分组的概念。

Step:步骤,Step 是最基本的操作单元,可以是打印一句话,也可以是构建一个 Docker 镜像,

由各类 Jenkins 插件提供,比如命令:sh ‘make’,就相当于我们平时 shell 终端中执行 make 命令

一样。

编写一个简单的脚本式Pipeline

node {

def mvnHome

stage('拉取代码') { // for display purposes

echo '拉取代码'

}

stage('编译构建') {

echo '编译构建'

}

stage('项目部署') {

echo '项目部署'

}

}

构建结果和声明式一样!


流水线声明式脚本操作---------------------------------------------------------------------

拉取代码 (都是靠魔板生成代码的模式)

生成git 代码,打开  流水线语法 

image

image

image

image

image

image

image

image

image

编译打包

image

image

image

image

或者  直接sh  后面加上要执行的脚本或命令

image



部署

image

image

image

image

假如代码需要同时部署到多台的tomcat,选择添加多台。如下图

image

image


Pipeline Script from SCM--------------------------------------(调用脚本方式)

刚才我们都是直接在Jenkins的UI界面编写Pipeline代码,这样不方便脚本维护,建议把Pipeline脚本放

在项目中(一起进行版本控制)

1)在项目根目录建立Jenkinsfifile文件,把内容复制到该文件中</DI< div>

image

把Jenkinsfifile上传到Gitlab

image

image

image


2)在项目中引用该文件

image

image

原文地址:https://www.cnblogs.com/pengrj/p/13677965.html