---
name: numa-jenkins-deployment
metadata:
  version: "1.1.0"
description: 使用 Numa CLI 安全规划、执行、监控、诊断和恢复 MCI DevOps/Jenkins canonical Multibranch 流水线部署。用户要求部署、发布、上线、重新部署、回滚，或排查 pipeline build/builds/status/log/retry/stop、Jenkins 构建、GitOps 写入和运行态时必须使用。
---

# Numa Jenkins Deployment

## 加载基础 Skill（必读）

本 Skill 依赖同来源的 `numa-cli@1.4.1`。业务操作前先加载基础 Skill；缺失时按 [依赖恢复指引](references/cli-bootstrap.md) 询问用户是否立即安装，不静默安装。命令示例使用 npx，无需全局安装；执行时将示例中的 `latest` 换为基础 Skill 已确认的具体版本，同一任务沿用同一入口。

通过标准 `pipeline build` 表面执行仓库中的 `gitopsBuildEntry()`。已退役的签名快照、独立触发、rollout 和 provenance 命令不得使用；若旧服务仍返回这些 capability，只视为待清理的历史状态。

## 工作流

1. 先读取 [references/release-policy.md](references/release-policy.md)，确认本次请求授权的环境和动作。
2. 检查源码目录、分支、HEAD、remote、工作树和 `.numa/pipeline-release.json`。生产只发布干净且已推送的提交。
3. 使用 `npx -y @numa-tech/numa@latest pipeline inspect APPLICATION --json` 和 `npx -y @numa-tech/numa@latest pipeline list` 确认 application、tier、canonical Multibranch root、branch child 与参数定义。
4. 新分支 Job 第一次运行不带业务参数，作为参数初始化；需要强制重建参数时可传 `INIT=true`。初始化成功后必须用新的幂等键触发实际部署。
5. 实际构建使用 `npx -y @numa-tech/numa@latest pipeline build`，传明确的 `ENV_ID` 及项目必需参数。生产提供 `--approve-id` 或不少于 10 个字符的 `--production-reason`。
6. 保存 requestId。结果不明时只用 `pipeline status/log` 或 `pipeline builds` 找回原请求，不换 key 重放。
7. 完成必须同时核对：平台构建账本/Jenkins 结果、Flux 目标文件与提交、目标集群实际镜像和健康状态。

## 标准命令

```bash
npx -y @numa-tech/numa@latest pipeline build APPLICATION --tier production --branch BRANCH \
  --param INIT=true \
  --production-reason '初始化生产流水线参数' --wait --json

npx -y @numa-tech/numa@latest pipeline build APPLICATION --tier production --branch BRANCH \
  --param ENV_ID=prd \
  --production-reason '执行生产构建与部署' --wait --json

npx -y @numa-tech/numa@latest pipeline status REQUEST_ID --watch --json
npx -y @numa-tech/numa@latest pipeline log REQUEST_ID --offset 0 --json
npx -y @numa-tech/numa@latest pipeline builds --app APPLICATION --tier production --branch BRANCH --json
```

首次自然空跑与显式 `INIT=true` 二选一；已经有参数定义时无需重复初始化。详细参数和恢复规则见 [references/cli-contract.md](references/cli-contract.md)，失败分类见 [references/diagnostics.md](references/diagnostics.md)。
