Jenkins pipline 使用模板
模板
/* pipline语言格式 */ pipeline { /* 在stage阶段中指定执行节点 */ agent none /* 通过pollSCM轮询监测版本改动 */ triggers { pollSCM('*/1 * * * *') } /* 创建环境变量 */ environment { USER = "xxx" MAIL = "xxx@xxx.com" PROJECT = "GAME OVER" PREPARATION = "None" BUILD = "None" DEPLOY = "None" TEST = "None" } /* 指定代码块 */ stages { /* 指定主体阶段:拉取代码 */ stage('Preparation') { /* 选择节点标签 */ agent { label 'node1' } /* 指定DSL命令封装区域 */ steps { /* 拉取代码 */ git branch: 'xxxxxx', url: 'https://xxxx.git' } /* 校验条件:校验拉取代码 */ post { /* 无论如何都执行 */ always { echo "The code pull action is completed" } /* 拉取失败执行 */ failure { /* 使用纯DSL语言编辑 */ script { echo "Failed to execute code pull action!!!" PREPARATION = "FAILED" } } /* 拉取成功执行 */ success { /* 使用纯DSL语言编辑 */ script { echo "Successfully execute code pull action!!!" PREPARATION = "SUCCESS" } } } } /* 指定主体阶段:打包代码 */ stage('Build') { /* 选择节点标签 */ agent { label 'node1' } /* 指定DSL命令封装区域 */ steps { echo "gradle build will go here." } /* 校验条件:校验打包 */ post { /* 无论如何都执行 */ always { echo "Build stage complete" } /* 打包失败执行 */ failure { /* 使用纯DSL语言编辑 */ script { echo "Build failed!!!" BUILD = "FAILED" } } /* 打包成功执行 */ success { /* 使用纯DSL语言编辑 */ script { echo "Build succeeded!!!" BUILD = "SUCCESS" } } } } /* 指定主体阶段:部署 */ stage('Deploy') { /* 选择节点标签 */ agent { label 'node1' } /* 指定DSL命令封装区域 */ steps { echo "Deploy the project environment." } } /* 指定主体阶段:测试 */ stage('Test') { /* 并发执行 */ parallel { /* 指定主体阶段:测试组1 */ stage ('set1') { /* 选择节点标签:可选标签组 */ agent { label 'node1' } /* 指定DSL命令封装区域 */ steps { echo "Test project environment. node1" echo "Test project environment. node2" echo "Test project environment. node3" } } /* 指定主体阶段:测试组2 */ stage ('set2') { /* 选择节点标签:可选标签组 */ agent { label 'master' } /* 指定DSL命令封装区域 */ steps { echo "Test project environment. master1" echo "Test project environment. master2" echo "Test project environment. master3" } } } } } /* 校验条件:校验整体发布流程 */ post { /* 无论如何都执行 */ always { echo "All executed" } /* 发布失败执行 */ failure { /* 使用纯DSL语言编辑 */ script { /* 发送邮件 */ echo "Unfortunately failed!!!" mail to: "${MAIL}", subject: "项目:${PROJECT}发布失败", body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}" } } /* 发布成功执行 */ success { /* 使用纯DSL语言编辑 */ script { /* 发送邮件 */ echo "Great success!!!" mail to: "${MAIL}", subject: "项目:${PROJECT}发布成功", body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}" } } } }

pipeline { agent none triggers { pollSCM('*/1 * * * *') } environment { USER = "xxx" MAIL = "xxxxxxxxxx@xxx.com" PROJECT = "GAME" PREPARATION = "None" BUILD = "None" DEPLOY = "None" TEST = "None" } stages { stage('Preparation') { agent { label 'node1' } steps { git branch: 'xxxxxxx', url: 'https://xxxxxxxxxxxxx.git' } post { always { echo "The code pull action is completed" } failure { script { echo "Failed to execute code pull action!!!" PREPARATION = "FAILED" } } success { script { echo "Successfully execute code pull action!!!" PREPARATION = "SUCCESS" } } } } stage('Build') { agent { label 'node1' } steps { echo "gradle build will go here." } post { always { echo "Build stage complete" } failure { script { echo "Build failed!!!" BUILD = "FAILED" } } success { script { echo "Build succeeded!!!" BUILD = "SUCCESS" } } } } stage('Deploy') { agent { label 'node1' } steps { echo "Deploy the project environment." } } stage('Test') { parallel { stage ('set1') { agent { label 'node1' } steps { echo "Test project environment. node1" echo "Test project environment. node2" echo "Test project environment. node3" } } stage ('set2') { agent { label 'master' } steps { echo "Test project environment. master1" echo "Test project environment. master2" echo "Test project environment. master3" } } } } } post { always { echo "All executed" } failure { script { echo "Unfortunately failed!!!" mail to: "${MAIL}", subject: "项目:${PROJECT}发布失败", body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}" } } success { script { echo "Great success!!!" mail to: "${MAIL}", subject: "项目:${PROJECT}发布成功", body: "Preparation=${PREPARATION}\nBUILD=${BUILD}\nDEPLOY=${DEPLOY}\nTEST=${TEST}" } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架