企业如何构建基于Jenkins的DevOps流水线?
- 内容介绍
- 文章标签
- 相关推荐
本文共计879个文字,预计阅读时间需要4分钟。
1. Pipeline 概述Pipeline 即流水线,是 Jenkins 2.X 的新特性,是 Jenkins 官方推荐的持续集成方案。与传统的自由风格项目不同,Pipeline 通过 Jenkins DSL 编写代码来实现自动化构建和部署。相较于之前用户只能手动执行操作,Pipeline 使得整个流程更加自动化和高效。
1. Pipeline 概述Pipeline 即流水线,是 jenkins2.X 的新特性,是 jenkins 官方推荐使用的持续集成方案。与传统的自由风格项目不同,它是通过 jenkins DSL 编写代码来实现。相比于之前用户只能通过 Web 界面进行配置的方式来定义 Jenkins 任务,现在通过使用 jenkins DSL 和 Groovy 语言编写程序,用户可以定义流水线并执行各种任务。
Jenkins pipeline包含两类元素,分别是stages和steps。如图:
-
step 代表单一的操作;告诉 Jenkins 做什么。比如,代码从仓库检出代码,执行脚本
-
stage 等于一系列 step 的组合,通常来表示 Jenkins pipeline 进程的可示化。例如,Build、Test、Deploy等
更详细的资料请查看官网
www.jenkins.io/doc/book/pipeline/
Pipeline 有两种语法,分别是声明式和脚本式
声明式语法
pipeline {
agent any
stages {
stage('Build') {
steps {
// TODO
}
}
stage('Test') {
steps {
// TODO
}
}
stage('Deploy') {
steps {
// TODO
}
}
}
}
agent any:表示任意一个可用代理节点上执行该Pipeline
stage('Build'):定义阶段
steps {}:阶段执行的步骤
脚本式语法
node {
stage('Build') {
// TODO
}
stage('Test') {
// TODO
}
stage('Deploy') {
// TODO
}
}
node:表示任意一个可用代理节点上执行该Pipeline
stage('Build') {}:定义阶段。在脚本式语法中 stage 代码块是可选的;不过明确写上的话可以让每个阶段的任务更清晰
3. 安装 Jenkins Pipeline 插件安装 Pipeline 和 Pipeline Maven Integration 插件
Manage Jenkins -> Manage Plugins
安装后,重启 Tomcat。
3. 流水线编译与部署创建流水线任务
新建Item
配置流水线任务
初学者对于 Pipeline 的脚本肯定无从入手的;但是 Pipeline 提供了一个非常有用的帮助文档。
127.0.0.1:8080/jenkins/job/Pipeline_maven/pipeline-syntax/
Pipeline 脚本有两种编写模式
-
Pipeline 脚本
-
Jenkinsfile 文件
这里选择 Pipeline script
3.1 克隆代码git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'gitee.com/hjj520/ruoyi-patrol.git'
3.2 编译
bat 'mvn clean install'
在 Windows 操作系统 Jenkins Pipeline 中要使用bat来运行 Windows 命令;而 Linux 操作系统则需要使用sh来运行 Shell 命令。
3.3 上传 jar包bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'
图片
完整 Pipeline 脚本
pipeline {
agent any
stages {
stage('git clone') {
steps {
git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'gitee.com/hjj520/ruoyi-patrol.git'
}
}
stage('complie') {
steps {
bat 'mvn clean install'
}
}
stage('upload') {
steps {
bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'
}
}
}
}
其他步骤可以自行添加,例如,测试、部署等。
本文共计879个文字,预计阅读时间需要4分钟。
1. Pipeline 概述Pipeline 即流水线,是 Jenkins 2.X 的新特性,是 Jenkins 官方推荐的持续集成方案。与传统的自由风格项目不同,Pipeline 通过 Jenkins DSL 编写代码来实现自动化构建和部署。相较于之前用户只能手动执行操作,Pipeline 使得整个流程更加自动化和高效。
1. Pipeline 概述Pipeline 即流水线,是 jenkins2.X 的新特性,是 jenkins 官方推荐使用的持续集成方案。与传统的自由风格项目不同,它是通过 jenkins DSL 编写代码来实现。相比于之前用户只能通过 Web 界面进行配置的方式来定义 Jenkins 任务,现在通过使用 jenkins DSL 和 Groovy 语言编写程序,用户可以定义流水线并执行各种任务。
Jenkins pipeline包含两类元素,分别是stages和steps。如图:
-
step 代表单一的操作;告诉 Jenkins 做什么。比如,代码从仓库检出代码,执行脚本
-
stage 等于一系列 step 的组合,通常来表示 Jenkins pipeline 进程的可示化。例如,Build、Test、Deploy等
更详细的资料请查看官网
www.jenkins.io/doc/book/pipeline/
Pipeline 有两种语法,分别是声明式和脚本式
声明式语法
pipeline {
agent any
stages {
stage('Build') {
steps {
// TODO
}
}
stage('Test') {
steps {
// TODO
}
}
stage('Deploy') {
steps {
// TODO
}
}
}
}
agent any:表示任意一个可用代理节点上执行该Pipeline
stage('Build'):定义阶段
steps {}:阶段执行的步骤
脚本式语法
node {
stage('Build') {
// TODO
}
stage('Test') {
// TODO
}
stage('Deploy') {
// TODO
}
}
node:表示任意一个可用代理节点上执行该Pipeline
stage('Build') {}:定义阶段。在脚本式语法中 stage 代码块是可选的;不过明确写上的话可以让每个阶段的任务更清晰
3. 安装 Jenkins Pipeline 插件安装 Pipeline 和 Pipeline Maven Integration 插件
Manage Jenkins -> Manage Plugins
安装后,重启 Tomcat。
3. 流水线编译与部署创建流水线任务
新建Item
配置流水线任务
初学者对于 Pipeline 的脚本肯定无从入手的;但是 Pipeline 提供了一个非常有用的帮助文档。
127.0.0.1:8080/jenkins/job/Pipeline_maven/pipeline-syntax/
Pipeline 脚本有两种编写模式
-
Pipeline 脚本
-
Jenkinsfile 文件
这里选择 Pipeline script
3.1 克隆代码git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'gitee.com/hjj520/ruoyi-patrol.git'
3.2 编译
bat 'mvn clean install'
在 Windows 操作系统 Jenkins Pipeline 中要使用bat来运行 Windows 命令;而 Linux 操作系统则需要使用sh来运行 Shell 命令。
3.3 上传 jar包bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'
图片
完整 Pipeline 脚本
pipeline {
agent any
stages {
stage('git clone') {
steps {
git credentialsId: 'c8eea0cc-24e7-4eb1-a2dd-42fc1066f35a', url: 'gitee.com/hjj520/ruoyi-patrol.git'
}
}
stage('complie') {
steps {
bat 'mvn clean install'
}
}
stage('upload') {
steps {
bat 'C:/jenkins/pscp.exe -r -l root -pw root %WORKSPACE%/ruoyi-admin/target/ruoyi-admin.jar 192.168.10.8:/home/huangjinjin/software/springdocker'
}
}
}
}
其他步骤可以自行添加,例如,测试、部署等。

