Triggers and monitors Jenkins builds interactively with Git branch/tag inference and background progress tracking. Useful for ABC Jenkins project deployments on phrases like '发布 Jenkins' or '触发构建'.
From abc-development-pluginnpx claudepluginhub abcfed/claude-marketplace --plugin abc-development-pluginThis skill uses the workspace's default tool permissions.
references/projects.mdreferences/test-cases.mdscripts/jenkins_deploy.pyscripts/run_tests.pySearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides slash command development for Claude Code: structure, YAML frontmatter, dynamic arguments, bash execution, user interactions, organization, and best practices.
交互式触发 Jenkins 构建,支持智能参数推断(自动解析分支名、环境推断)和实时状态监控。
JENKINS_USER 环境变量已设置(Jenkins 用户名)JENKINS_TOKEN 环境变量已设置(Jenkins API Token)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": 161484,
"full_name": "abc-his/test/PcFeatureTest",
"project_name": "PcFeatureTest",
"build_url": "http://ci.abczs.cn/job/abc-his/job/test/job/PcFeatureTest/"
}
步骤 2:启动后台监控
Claude Code(使用 run_in_background=true):
# 在 Claude Code 中使用 Bash 工具,设置 run_in_background=true
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 &
重要说明:
nohup 实现后台运行,构建完成后会收到系统通知监控输出示例:
📊 开始监控构建: PcFeatureTest
Queue ID: 161484
项目: abc-his/test/PcFeatureTest
任务开始执行 (Build #11122)
📦 构建号: #11122
⏳ 监控构建进度...
需要取消时,请告诉我: "取消构建 #11122"
⏳ [███████████░░░░░░░░░░░░░░░] 42% (125s)
...
✅ PcFeatureTest 构建成功!
| 参数 | 必填 | 说明 |
|---|---|---|
project_name | ✓ | Jenkins 项目名称(如 PcFeatureTest) |
--trigger-only-no-monitor | ✓ | 仅触发构建,不启动监控,返回 JSON |
--yes | ✓ | 跳过交互式确认 |
--params | ✓ | JSON 格式的完整构建参数 |
| 参数 | 必填 | 说明 |
|---|---|---|
--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"}'
# 返回 JSON:
# {"queue_id": 161484, "full_name": "abc-his/test/PcFeatureTest", ...}
# 步骤 2: 启动后台监控
# Claude Code: 直接运行(会使用 run_in_background=true)
# 其他工具: 添加 nohup 和 & 放到后台
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
1. 参数验证(必做)
python scripts/jenkins_deploy.py \
PcFeatureTest \
--validate \
--params '{"repoTag":"pc-t2025.53.19","featureNo":"70"}'
2. 模拟运行(必做)
python scripts/jenkins_deploy.py \
PcFeatureTest \
--dry-run \
--params '{"repoTag":"pc-t2025.53.19","featureNo":"70"}'
详细测试用例:参见 test-cases.md
┌─────────────────────────────────────────────────────────────┐
│ 1. Claude Code: 使用 AskUserQuestion 收集参数 │
│ 其他 AI 工具: 通过对话收集参数 │
│ - 项目名称 │
│ - Git 分支 / 标签 │
│ - TAPD ID(从分支名自动解析) │
│ - featureNo(如果项目有此参数,**必填**) │
│ - 其他构建参数 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 2. 调用脚本 --trigger-only 模式 │
│ - 传递完整的 JSON 参数 │
│ - 直接触发 Jenkins API │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 3. 返回构建信息 │
│ - Queue ID │
│ - 构建页面 URL │
└─────────────────────────────────────────────────────────────┘
| 参数 | 推断规则 | 示例 |
|---|---|---|
repoBranch | 当前 Git 分支 | hotfix/盘点页面增加备注及搜索-1167459320001118371 |
repoTag | 最新 Git 标签 | pc-f2026.05.48 |
tapdId / tapdid | 从分支名自动解析(标准化流程:分支名末尾的数字) | 1167459320001118371 |
execType | 有 tag=deploy,无 tag=build | 有 tag → deploy |
featureNo | 必填(当项目有此参数时),需用户明确指定 | 1122044681001112866 |
envNo | 部分项目需要,需用户明确指定 | 001 |
标准化流程下,分支名格式为 feature/xxx-{TAPD_ID} 或 hotfix/xxx-{TAPD_ID}:
分支名:hotfix/盘点页面增加备注及搜索-1167459320001118371
└────────────────────┘
自动提取 TAPD ID
无需手动配置,发布时会自动填充到 tapdId 或 tapdid 参数。
⚠️ 重要:
featureNo(功能编号):当项目有此参数时必填,需由用户提供envNo(环境编号):部分项目需要,需由用户提供| 参数类型 | 说明 | 交互方式 |
|---|---|---|
StringParameterDefinition | 文本输入 | 直接输入或回车使用默认值 |
ChoiceParameterDefinition | 下拉选择 | 显示选项列表,输入编号选择 |
PT_CHECKBOX | 复选框多选 | 显示选项列表,输入逗号分隔的编号 |
BooleanParameterDefinition | 布尔值 | y/n 选择 |
WReadonlyStringParameterDefinition | 只读参数 | 自动使用,不可修改 |
详细项目参数参考:参见 projects.md
用途:使用标签发布到测试环境
关键参数:
repoTag:发布标签(如 pc-t2025.53.19)tapdId:TAPD 需求 ID(自动从分支名解析)featureNo:功能编号(必填),需用户提供buildEnv:固定为 test示例:
python scripts/jenkins_deploy.py \
PcFeatureTest \
--trigger-only \
--params '{"repoTag":"pc-f2026.05.48","tapdId":"1167459320001118371","featureNo":"1122044681001112866"}'
用途:使用分支发布到开发环境
关键参数:
repoBranch:发布分支(如 hotfix/xxx-1167459320001118371)dockerTag:Docker 镜像标签(默认 latest)buildEnv:固定为 dev示例:
python scripts/jenkins_deploy.py staticPcOwn
用途:微服务项目发布,支持多区域部署
关键参数:
projectRootDir:项目子目录(如 packages/mf-deepseek)deployZone:部署区域(复选框:primary / standby)repoBranch:发布分支示例:
python scripts/jenkins_deploy.py static-mf-deepseek
缓存位置: scripts/cache/jobs.json
缓存策略:
--refresh 参数手动清除缓存:
rm scripts/cache/jobs.json
| 环境 | Dev | Test |
|---|---|---|
| abc-his | ✓ | ✓ |
| abc-bis | ✓ | ✓ |
| abc-cooperation | ✓ | ✓ |
| abc-global | ✓ | ✓ |
| abc-oa | ✓ | ✓ |
| mira | ✓ | ✓ |
| 场景 | 处理方式 |
|---|---|
| 未配置认证 | 提示设置 JENKINS_USER 和 JENKINS_TOKEN |
| 项目不存在 | 列出可用项目 |
| 缺少 featureNo | 如果项目有此参数,必须提示用户提供 |
| 构建失败 | 显示构建 URL 和日志链接 |
| 参数验证失败 | 提示正确格式 |
| 网络超时 | 提示检查网络连接 |
Jenkins、发布、部署、构建、Deploy、Build、CI/CD