ABC Jenkins 发布技能用于交互式触发 Jenkins 构建,支持智能参数推断(自动解析分支名、环境推断)和实时状态监控。
【用途】 当用户请求"发布 Jenkins"、"触发构建"、"部署项目"、"Jenkins 发布"或类似操作时触发。适用于测试环境发布、开发环境发布、微服务发布等场景。
【前置条件】
- 已设置 JENKINS_USER 环境变量(Jenkins 用户名)
- 已设置 JENKINS_TOKEN 环境变量(Jenkins API Token)
- 当前在 Git 仓库中(用于自动获取分支和标签)
【安装】 npx add-skill https://github.com/ABCFed/claude-marketplace/tree/main/skills/jenkins-deploy
【环境变量准备】 编辑 ~/.zshrc 或 ~/.bashrc: export JENKINS_USER="your_jenkins_username" export JENKINS_TOKEN="your_jenkins_api_token" 然后执行 source ~/.zshrc
【使用流程】 推荐采用两阶段部署(进度可见)。
步骤 1:触发构建(返回 JSON) python scripts/jenkins_deploy.py <project_name> --trigger-only-no-monitor --yes --params "<json>" 返回 JSON 包含 queue_id、full_name、project_name、build_url 等字段。
步骤 2:启动后台监控 Claude Code(使用 run_in_background=true)中使用 Bash 工具运行: python scripts/jenkins_deploy.py --monitor-only --full-name abc-his/test/PcFeatureTest --queue-id 161484 --display-name PcFeatureTest
其他 AI 工具或终端(使用 nohup): nohup python scripts/jenkins_deploy.py --monitor-only --full-name abc-his/test/PcFeatureTest --queue-id 161484 --display-name PcFeatureTest > /dev/null 2>&1 &
监控任务作为后台任务运行,不阻塞主对话/终端;Claude Code 的进度显示在后台任务输出中;其他工具使用 nohup 实现后台运行,构建完成后会收到系统通知。
【参数说明】 --trigger-only-no-monitor 模式(触发构建):
- project_name ✓:Jenkins 项目名称(如 PcFeatureTest)
- --trigger-only-no-monitor ✓:仅触发构建,不启动监控,返回 JSON
- --yes ✓:跳过交互式确认
- --params ✓:JSON 格式的完整构建参数
--monitor-only 模式:
- --monitor-only ✓:后台监控模式
- --full-name ✓:项目完整路径(如 abc-his/test/PcFeatureTest)
- --queue-id ✓:队列 ID
- --display-name ✓:项目显示名称(用于通知)
【完整示例】 测试环境发布: 步骤 1:python scripts/jenkins_deploy.py PcFeatureTest --trigger-only-no-monitor --yes --params '{"repoTag":"pc-t2025.53.19","tapdId":"1167459320001118371","featureNo":"70"}' 步骤 2:python scripts/jenkins_deploy.py --monitor-only --full-name abc-his/test/PcFeatureTest --queue-id 161484 --display-name PcFeatureTest
开发环境发布: python scripts/jenkins_deploy.py staticPcOwn --trigger-only-no-monitor --yes --params '{"repoBranch":"hotfix/xxx-1167459320001118371"}'
【其他命令】 列出所有项目:python scripts/jenkins_deploy.py --list --all 列出当前仓库相关项目(自动过滤):python scripts/jenkins_deploy.py --list 停止指定构建号:python scripts/jenkins_deploy.py --stop <build_number>
【测试与验证】 自动化运行所有测试用例:python scripts/run_tests.py 参数验证:python scripts/jenkins_deploy.py PcFeatureTest --validate --params '{"repoTag":"pc-t2025.53.19","featureNo":"70"}' 模拟运行:python scripts/jenkins_deploy.py PcFeatureTest --dry-run --params '{"repoTag":"pc-t2025.53.19","featureNo":"70"}'
【智能参数推断】
- repoBranch:当前 Git 分支,示例 hotfix/盘点页面增加备注及搜索-1167459320001118371
- repoTag:最新 Git 标签,示例 pc-f2026.05.48
- tapdId / tapdid:从分支名自动解析(标准化流程:分支名末尾的数字),示例 1167459320001118371
- execType:有 tag=deploy,无 tag=build
- featureNo:必填(当项目有此参数时),需用户明确指定
- envNo:部分项目需要,需用户明确指定 注意:featureNo(功能编号)当项目有此参数时必填,需由用户提供;envNo(环境编号)部分项目需要,需由用户提供。
【支持的参数类型】
- StringParameterDefinition:文本输入,直接输入或回车使用默认值
- ChoiceParameterDefinition:下拉选择,显示选项列表,输入编号选择
- PT_CHECKBOX:复选框多选,显示选项列表,输入逗号分隔的编号
- BooleanParameterDefinition:布尔值,y/n 选择
- WReadonlyStringParameterDefinition:只读参数,自动使用,不可修改
【常见项目类型】
- PcFeatureTest(测试环境发布):使用标签发布到测试环境。关键参数 repoTag(发布标签)、tapdId(TAPD 需求 ID,自动从分支名解析)、featureNo(功能编号,必填,需用户提供)、buildEnv(固定为 test)。
- staticPcOwn(开发环境发布):使用分支发布到开发环境。关键参数 repoBranch(发布分支)、dockerTag(Docker 镜像标签,默认 latest)、buildEnv(固定为 dev)。
- static-mf-deepseek(微服务发布):微服务项目发布,支持多区域部署。关键参数 projectRootDir(项目子目录,如 packages/mf-deepseek)、deployZone(部署区域,复选框:primary / standby)、repoBranch(发布分支)。
【缓存机制】 缓存位置:scripts/cache/jobs.json 首次运行从 Jenkins API 获取 542 个项目并缓存,后续运行直接使用缓存(速度快)。强制刷新使用 --refresh 参数。手动清除缓存:rm scripts/cache/jobs.json
【支持的 Jenkins 环境】 Dev 与 Test 环境均支持:abc-his、abc-bis、abc-cooperation、abc-global、abc-oa、mira。
【错误处理】
- 未配置认证:提示设置 JENKINS_USER 和 JENKINS_TOKEN
- 项目不存在:列出可用项目
- 缺少 featureNo:如果项目有此参数,必须提示用户提供
- 构建失败:显示构建 URL 和日志链接
- 参数验证失败:提示正确格式
- 网络超时:提示检查网络连接
【触发关键词】 Jenkins、发布、部署、构建、Deploy、Build、CI/CD