Jenkins job与Pipeline简单使用
目录一. 环境配置1.1 全局工具配置1.2 系统配置1.3 凭据配置二. 任务2.1 新建普通任务2.2 触发器2.2.1 定时构建2.2.2 轮询SCM2.2.3 触发远程构建2.3 Pipeline2.3.1 基本配置2.3.2 声明式Pipeline介绍2.3.3 声明式Pipeline示例一. 环境配置1.1 全局工具配置配置Maven与JDK1.2 系统配置1.3 凭据配置通过下面的命令生成一对密钥# 生成密钥ssh-keygen-ted25519-Cfengyehong123gmai.com# 确认生成的密钥对ls-l/home/apluser/.ssh/将公钥的文本内容添加到Github上Authentication Key认证密钥用于证明你是谁让你可以访问 GitHub。Signing Key签名密钥用于证明提交Commit确实是你创建的。将私钥的文本内容添加到Jenkins的凭据中并设置好凭据对应的ID二. 任务2.1 新建普通任务构建一个自由风格的软件项目可以在Build Steps中进行构建步骤如上图所示直接输出的话文件会被输出到JENKINS_HOME的workspace所对应的job中apluserubuntu22-1:~$ apluserubuntu22-1:~$ls-l~/jenkins_home/workspace/ drwxr-xr-x2apluser apluser4096Jul1814:37 first-job drwxr-xr-x3apluser apluser4096Jul2009:32 second-pipelinetmp drwxr-xr-x3apluser apluser4096Jul2010:26 third-pipeline2tmp drwxr-xr-x3apluser apluser4096Aug813:08 third-pipelinetmp apluserubuntu22-1:~$ apluserubuntu22-1:~$ls-l~/jenkins_home/workspace/first-job/ -rw-r--r--1apluser apluser25Jul1814:37 from-jenkins.txt apluserubuntu22-1:~$2.2 触发器Jenkins对于任务提供了不同种类的触发器2.2.1 定时构建使用corn表达式每隔一段时间触发构建2.2.2 轮询SCMSCM(Source Code Management的缩写)使用corn表达式每隔一段时间从Git仓库检查代码的变化当检测到代码发生变化之后就会自动触发构建任务。是比较常用和重要的触发器之一。2.2.3 触发远程构建通过Github或者GitLab的WebHook来触发构建当代码仓库有新的提交之后主动发送一个Http请求到Jenkins服务器的一个指定的url地址。Jenkins接收到请求之后就会触发对应的构建任务这种方式相比于轮询代码仓库, 更加的实时高效因为不需要等待下一个轮询的时间。从 Jenkins 较新的版本开始仅有Job Token通常并不足以通过认证。一般还需要用户名Username和API Token(不是登录密码)如下图所示发行一个API Token然后就可以通过类似于下面的curl命令来手动触发指定job的构建了不带请求参数的构建curl -X POST --user apluser:1166770f90a573b2f71631794ff6d5b731 http://172.22.125.148:9090/job/third-pipeline/build?tokenJob-Token-123带请求参数的构建curl -X POST --user apluser:1166770f90a573b2f71631794ff6d5b731 http://172.22.125.148:9090/job/third-pipeline/buildWithParameters?tokenJob-Token-123VERSION2.0DEBUGtrue2.3 PipelineJenkins提供的一种用于实现持续集成和持续交付的强大工具, 允许使用代码来定义整个软甲的交付过程。从代码的获取, 构建, 测试 到部署的各个环节都可以通过流水线脚本来实现自动化。流水线脚本通常使用Groovy语言编写这样就可以使用Groovy语言来实现复杂的构建逻辑。Pipeline脚本一共分为2种声明式Pipeline使用更加简洁和结构化的语法适合大多数常见的使用场景。脚本式Pipeline更加灵活适合需要实现复杂逻辑的场景。2.3.1 基本配置设置要拉取的项目的地址如果要通过参数化构建的话勾选参数化构建过程并设置要接收的参数名称使用脚本触发远程构建并设置好job对应的触发Token设置好仓库的地址分支以及构建用脚本的名称一般把构建文件存放到项目仓库中名称一般为JenKinsfile。JenKinsfile用来定义Jenkins流水线的构建, 测试和部署的过程使用Groovy语言编写可以让流水线的配置和代码放在一起这样就可以更好的进行版本控制和协作开发。2.3.2 声明式Pipeline介绍使用pipeline关键字来定义流水线中完成的各个阶段和步骤agent部分用来指定流水线运行的节点any表示可以在任何节点上运行。stages定义了流水线的各个阶段里面可以有多个stage每个stage表示流水线的一个阶段比如构建测试部署等等。每个stage里面又包含了具体的步骤→steps目前新版本的Jenkins更加推荐使用声明式Pipeline。2.3.3 声明式Pipeline示例接收到构建请求后获取url中的请求参数进行处理从Github的指定仓库中拉取代码后进行编译测试打包然后将打包之后得到的app.jar文件复制到目标服务器上运行// 定义全局变量 def config // 定义辅助函数 defloadConfig(){return[version:params.VERSION?.trim(), debug:params.DEBUG]}pipeline{agent any tools{mavenMaven-3.9.5jdkJDK-25}// url传参的参数 parameters{string(name:VERSION)booleanParam(name:DEBUG, defaultValue:false)}environment{MAVEN_OPTS-Xmx1024mAPP_NAMEspringboot3_demoAPP_VERSION0.0.1-SNAPSHOTDEPLOY_USERapluserDEPLOY_HOST172.22.125.148SSH_PORT22DEPLOY_DIR/home/apluser/projectREMOTE_SERVER_JAVA_HOME/home/apluser/JDK/jdk-21.0.2}options{// 保留最近10次的构建 buildDiscarder(logRotator(numToKeepStr:10))// 添加时间戳到控制台输出 timestamps()// 设置超时时间 timeout(time:30, unit:MINUTES)}stages{// 初期化 stage(Init){steps{script{configloadConfig()echoVERSION --${config.version}}}}stage(Checkout){steps{echoChecking out code...git(url:gitgithub.com:fengyehong123/Jenkins-Test.git, branch:main, credentialsId:Jenkins-Test)script{env.GIT_COMMIT_MSGsh(script:git log -1 --pretty%B, returnStdout:true).trim()env.GIT_COMMIT_AUTHORsh(script:git log -1 --pretty%an, returnStdout:true).trim()}echoCommit:${env.GIT_COMMIT_MSG}by${env.GIT_COMMIT_AUTHOR}}}stage(Build){steps{echoBuilding application...shchmodx mvnw ./mvnw clean package-DskipTests}post{success{echoBuild Completed Successfully!archiveArtifacts(artifacts:target/*.jar, fingerprint:true)}failure{echoBuild Failed!}}}stage(Test){steps{echoRunning tests...sh./mvnw test}post{always{junit**/target/surefire-reports/*.xml}success{echoAll tests passed!}failure{echoTests Failed!}}}stage(Deploy){steps{withCredentials([sshUserPrivateKey(credentialsId:Jenkins-Test, keyFileVariable:SSH_KEY)]){shscp-i$SSH_KEY-P${SSH_PORT}target/${APP_NAME}-${APP_VERSION}.jar${DEPLOY_USER}${DEPLOY_HOST}:${DEPLOY_DIR}/app.jarssh-i$SSH_KEY-p${SSH_PORT}${DEPLOY_USER}${DEPLOY_HOST} if [ -f ${DEPLOY_DIR}/app.pid ]; then kill \$(cat ${DEPLOY_DIR}/app.pid) 2/dev/null || true rm -f ${DEPLOY_DIR}/app.pid sleep 1 fi nohup ${REMOTE_SERVER_JAVA_HOME}/bin/java -jar ${DEPLOY_DIR}/app.jar ${DEPLOY_DIR}/app.log 21 echo \$! ${DEPLOY_DIR}/app.pid }}post{success{echoDeploy Successfully!}failure{echoDeploy Failed!}}}}post{always{echoCleaning up workspace...// deleteDir()是 Pipeline 自带的步骤, 会删除当前 Workspace 下的所有文件 deleteDir()}success{echoPipelie completed Successfully!// 发送邮件通知。。。}failure{echoPipeli Failed!}}}

相关新闻

Policy Plus完整指南:解锁Windows全版本组策略编辑的终极解决方案

Policy Plus完整指南:解锁Windows全版本组策略编辑的终极解决方案

Policy Plus完整指南:解锁Windows全版本组策略编辑的终极解决方案 【免费下载链接】PolicyPlus Local Group Policy Editor plus more, for all Windows editions 项目地址: https://gitcode.com/gh_mirrors/po/PolicyPlus 还在为Windows家庭版无法使用组策略…

2026/8/9 9:22:15 阅读更多 →
解锁Windows虚拟显示器:ParsecVDD专业解决方案深度解析

解锁Windows虚拟显示器:ParsecVDD专业解决方案深度解析

解锁Windows虚拟显示器:ParsecVDD专业解决方案深度解析 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 在当今数字工作环境中,虚拟显示器技术正成为游戏串…

2026/8/9 9:21:15 阅读更多 →
GTA5线上小助手:终极游戏体验优化工具

GTA5线上小助手:终极游戏体验优化工具

GTA5线上小助手:终极游戏体验优化工具 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools GTA5线上小助手是一款专为《侠盗猎车手5》线上模式玩家设计的免费辅助工具,旨在帮助玩家轻…

2026/8/9 9:21:15 阅读更多 →

最新新闻

儿童护眼台灯哪个牌子好?盘点2026儿童护眼灯热门品牌,建议收藏

儿童护眼台灯哪个牌子好?盘点2026儿童护眼灯热门品牌,建议收藏

儿童护眼台灯哪个牌子好?当下数字化办公与学习已成日常,光不再只是单纯照亮空间的存在,更是守护视力健康的重要根基。不管是孩子伏案读写、成人深夜居家办公,还是长辈日常居家视物,不合理的照明方式,都容易…

2026/8/9 10:15:39 阅读更多 →
VisualCppRedist AIO:企业级Windows环境VC++运行库标准化部署框架解决方案

VisualCppRedist AIO:企业级Windows环境VC++运行库标准化部署框架解决方案

VisualCppRedist AIO:企业级Windows环境VC运行库标准化部署框架解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 在现代化企业IT环境中&#…

2026/8/9 10:15:39 阅读更多 →
XHS-Downloader终极指南:3分钟快速上手小红书无水印下载神器

XHS-Downloader终极指南:3分钟快速上手小红书无水印下载神器

XHS-Downloader终极指南:3分钟快速上手小红书无水印下载神器 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链…

2026/8/9 10:15:39 阅读更多 →
数据编织实战:基于开源工具构建自动化数据治理原型

数据编织实战:基于开源工具构建自动化数据治理原型

你是不是也遇到过这样的场景:公司业务发展几年后,数据散落在 MySQL、PostgreSQL、MongoDB、HDFS、S3 等十几种存储里。业务部门要一个用户画像,你得先问数据在哪儿,再找 DBA 要权限,最后写一堆JOIN和UNION才能勉强拼出…

2026/8/9 10:15:39 阅读更多 →
CefFlashBrowser:拯救你的Flash记忆,让经典游戏重获新生的3大秘诀

CefFlashBrowser:拯救你的Flash记忆,让经典游戏重获新生的3大秘诀

CefFlashBrowser:拯救你的Flash记忆,让经典游戏重获新生的3大秘诀 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你是不是曾经遇到过这样的场景?心血来…

2026/8/9 10:15:38 阅读更多 →
DTCWT在轴承故障诊断中的应用与MATLAB实现

DTCWT在轴承故障诊断中的应用与MATLAB实现

1. 项目概述:DTCWT在轴承故障诊断中的独特价值 轴承作为旋转机械的核心部件,其健康状态直接影响设备运行安全。传统振动分析方法在强噪声环境下常出现故障特征提取困难的问题。双树复小波变换(Dual-Tree Complex Wavelet Transform, DTCWT&am…

2026/8/9 10:14:38 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/8 17:02:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/8 17:02:44 阅读更多 →