Jenkins 2.580 免向导搭建 CI 流水线:测试归档、上下游触发与参数化部署实测

发布时间:2026/10/8 10:23:20
Jenkins 2.580 免向导搭建 CI 流水线:测试归档、上下游触发与参数化部署实测 Jenkins 2.580 免向导搭建 CI 流水线测试归档、上下游触发与参数化部署实测一、为什么用 war 而不是 MSIJenkins 官方 Windows MSI 会装成系统服务并写注册表实验环境一动就走形。java -jar jenkins.war最干净绿、可移植、删目录即卸载。国内下载走清华 TUNA 镜像直连速度可观。启动命令只多一个参数——跳过首次配置向导java-Djenkins.install.runSetupWizardfalse-jarjenkins.war--httpPort18080日志出现Jenkins is fully up and running即就绪。免向导模式默认无插件、无安全正好跑通最小可用 CI不跳向导的话要手工去服务器翻 initialAdminPassword 文件装插件还会卡更新源——实验环境一律建议免向导。二、freestyle 作业真实测试 制品归档被测对象是一个 10 行的计算器模块配 6 个 unittest 用例含除零异常路径。CI 入口run_ci.py跑测试并产出 JUnit XML。作业用 config.xml 直接建projectbuildershudson.tasks.BatchFilecommandpython run_ci.py/command/hudson.tasks.BatchFile/builderspublishershudson.tasks.ArtifactArchiverartifactsreport/*/artifacts/hudson.tasks.ArtifactArchiver/publishers/project触发构建实测Ran 6 tests — OK制品区归档出 junit.xml 与 build-info.txt#1 耗时 4.7s、#2 耗时 9.3s均 SUCCESS。一个真实的坑war 启动的裸 Jenkins 不带任何插件配置里写 JUnitResultArchiver 能保存成功但发布步骤静默不执行testReport 页 404。想装 junit 插件会发现它拖出 prism-api、plugin-util-api、workflow-step-api 一串依赖第二层还有 structs、commons-text-api……裸机党直接用制品归档承载测试报告别恋战。三、流水线编排上游 SUCCESS 自动触发下游不装 Pipeline 插件也能编排——freestyle 自带 BuildTrigger 发布器阈值设 SUCCESShudson.tasks.BuildTriggerchildProjectsdemo-app-deploy/childProjects/hudson.tasks.BuildTrigger实测构建 #2 一跑完console 出现Triggering a new build of demo-app-deploy下游自动开跑并 SUCCESS。测试不过关时部署根本不会发生——这就是 CI/CD 的最小闭环。四、参数化与定时一次定义多环境发布deploy 作业声明字符串参数。必须包在 ParametersDefinitionProperty 里——直接裸写 StringParameterDefinition 会被静默忽略buildWithParameters 直接 400实测踩过hudson.model.ParametersDefinitionPropertyparameterDefinitionshudson.model.StringParameterDefinitionnameENV_NAME/namedefaultValuestaging/defaultValue/hudson.model.StringParameterDefinition/parameterDefinitions/hudson.model.ParametersDefinitionProperty然后一行 REST 切换部署目标POST /job/demo-app-deploy/buildWithParameters?ENV_NAMEproduction实测 console 输出Deploying build to production定时构建在作业配置里填 cron5 4 * * * 每天 04:05Jenkins 会在配置页显示下次触发时间帮你确认表达式没写错。能力配置方式实测结果自由风格作业config.xml POST createItem6/6 测试过制品归档上下游编排BuildTrigger 发布器下游自动触发 SUCCESS参数化ParametersDefinitionPropertyproduction 环境一键部署定时触发TimerTrigger cron配置回读一致REST 自动化crumb cookie全程零 UI五、REST 全自动化整条流水线零 UIJenkins 的 CSRF 防护要求每个写请求带 crumb三件套固定用法curl-cck.txt http://127.0.0.1:18080/crumbIssuer/api/jsoncurl-bck.txt-HJenkins-Crumb: val-XPOST...curlhttp://127.0.0.1:18080/job/X/lastCompletedBuild/api/json?treenumber,result本次实验从建作业、改配置、触发构建到读结果全部走 API没有点过一次页面按钮。把这三条命令包进脚本就是团队内部的迷你发布平台。配套完整工程Jenkins持续集成实战五步全流程freestyle到参数化构建部署附实测工程Jenkins持续集成实战五步全流程freestyle到参数化构建部署附实测工程被测工程、作业 config.xml 模板、jenkins.war、一键启动脚本与全量实测留档都在工程包里。