ai-project-manage-cli 6.0.81 → 6.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4265,6 +4265,42 @@ function posixBasename(p) {
4265
4265
  return idx >= 0 ? normalized.slice(idx + 1) : normalized;
4266
4266
  }
4267
4267
 
4268
+ // src/commands/deploy/internal/deploy-hints.ts
4269
+ function formatDeployNotConfiguredLines(env, deployCommands) {
4270
+ const configuredEnvs = Object.keys(deployCommands).filter(
4271
+ (key) => deployCommands[key]?.trim()
4272
+ );
4273
+ if (configuredEnvs.length > 0) {
4274
+ return [
4275
+ `[apm] \u65E0\u6CD5\u6267\u884C\u90E8\u7F72\uFF1Aapm.config.json \u4E2D\u672A\u914D\u7F6E deploy.${env}`,
4276
+ `[apm] \u5F53\u524D\u5DF2\u914D\u7F6E\u7684\u73AF\u5883: ${configuredEnvs.join(", ")}`
4277
+ ];
4278
+ }
4279
+ return [
4280
+ "[apm] \u65E0\u6CD5\u6267\u884C\u90E8\u7F72\uFF1A\u5F53\u524D\u9879\u76EE\u672A\u914D\u7F6E\u81EA\u52A8\u5316\u90E8\u7F72\uFF08apm.config.json \u4E2D\u65E0 deploy \u6BB5\uFF09",
4281
+ "[apm] \u90E8\u5206\u9879\u76EE\u4E0D\u652F\u6301\u6216\u672A\u542F\u7528\u81EA\u52A8\u5316\u90E8\u7F72\uFF0C\u5C5E\u6B63\u5E38\u60C5\u51B5\uFF0C\u53EF\u8DF3\u8FC7\u90E8\u7F72"
4282
+ ];
4283
+ }
4284
+ function formatWisdomFrontendDeployNotConfiguredLines(env, packageJsonPath) {
4285
+ return [
4286
+ `[apm] \u65E0\u6CD5\u6267\u884C\u90E8\u7F72\uFF1A${packageJsonPath} \u4E2D\u672A\u627E\u5230 deploy:${env} \u811A\u672C`,
4287
+ "[apm] \u82E5\u672C\u9879\u76EE\u4E0D\u652F\u6301\u81EA\u52A8\u5316\u90E8\u7F72\uFF0C\u5C5E\u6B63\u5E38\u60C5\u51B5\uFF0C\u53EF\u8DF3\u8FC7\u90E8\u7F72"
4288
+ ];
4289
+ }
4290
+ function printDeployNotConfiguredHint(env, deployCommands) {
4291
+ for (const line of formatDeployNotConfiguredLines(env, deployCommands)) {
4292
+ console.error(line);
4293
+ }
4294
+ }
4295
+ function printWisdomFrontendDeployNotConfiguredHint(env, packageJsonPath) {
4296
+ for (const line of formatWisdomFrontendDeployNotConfiguredLines(
4297
+ env,
4298
+ packageJsonPath
4299
+ )) {
4300
+ console.error(line);
4301
+ }
4302
+ }
4303
+
4268
4304
  // src/commands/deploy/internal/wisdom-auto-deploy.ts
4269
4305
  import { existsSync as existsSync17, readFileSync as readFileSync14 } from "node:fs";
4270
4306
  import path3 from "node:path";
@@ -5089,8 +5125,9 @@ async function runWisdomAutoDeploy(options) {
5089
5125
  if (projectType === "frontend") {
5090
5126
  const deployCmd = resolveFrontendDeployCommand(options.env, cwd);
5091
5127
  if (!deployCmd) {
5092
- console.error(
5093
- `\u524D\u7AEF\u9879\u76EE ${path3.join(cwd, "package.json")} \u4E2D\u672A\u627E\u5230 deploy:${options.env} \u811A\u672C`
5128
+ printWisdomFrontendDeployNotConfiguredHint(
5129
+ options.env,
5130
+ path3.join(cwd, "package.json")
5094
5131
  );
5095
5132
  process.exit(1);
5096
5133
  }
@@ -5142,12 +5179,7 @@ function registerDeployMainCommand(program) {
5142
5179
  const deployCommands = cfg.deploy ?? {};
5143
5180
  const command = deployCommands[env]?.trim();
5144
5181
  if (!command) {
5145
- const keys = Object.keys(deployCommands);
5146
- console.error(
5147
- keys.length > 0 ? `apm.config.json \u4E2D\u672A\u914D\u7F6E deploy.${env}\uFF0C\u53EF\u7528\u73AF\u5883: ${keys.join(
5148
- ", "
5149
- )}` : `apm.config.json \u4E2D\u672A\u914D\u7F6E deploy \u6BB5`
5150
- );
5182
+ printDeployNotConfiguredHint(env, deployCommands);
5151
5183
  process.exit(1);
5152
5184
  }
5153
5185
  runShellCommand3(command, cwd);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-project-manage-cli",
3
- "version": "6.0.81",
3
+ "version": "6.0.82",
4
4
  "description": "命令行工具:后续用于调用平台后端 API 完成运维与自动化操作",
5
5
  "type": "module",
6
6
  "private": false,
@@ -1,8 +1,14 @@
1
+ # apm-deploy:自动化部署
2
+
1
3
  ## 工作流程
2
4
 
3
- 在项目根目录执行 `apm deploy <环境名称>`
5
+ 在项目根目录执行 `apm deploy <环境名称>`,**以命令执行结果为准**:
6
+
7
+ - **成功**:部署完成,在回信中说明测试环境地址或部署结果。
8
+ - **失败且输出含「未配置自动化部署」或「可跳过部署」**:本项目不支持自动化部署,属正常情况;放弃部署,在回信说明已跳过即可,无需修复配置或重试。
9
+ - **其他失败**:按输出排查并修复后重试。
4
10
 
5
11
  ## 示例
6
12
 
7
13
  1. 部署测试环境:`apm deploy test`
8
- 2. 部署正式环境: `apm deploy online`
14
+ 2. 部署正式环境:`apm deploy online`
@@ -86,7 +86,7 @@ ALTER TABLE inspection_class ADD COLUMN is_project_add VARCHAR(1) DEFAULT '0';
86
86
  开发完成的定义是以下三项**全部满足**,缺一不可:
87
87
 
88
88
  1. **构建通过**:执行本仓库的构建/检查命令(见 AGENTS.md 或部署文档),失败必须修复后重试。
89
- 2. **发布测试环境**:**Read** `.apm/skills/apm-deploy/SKILL.md` 并按其流程部署;**后端**涉及 SQL 变更时,须在回复中引用 `docs/SQL.md`,并写明待执行的 SQL 文件名或执行顺序。
89
+ 2. **发布测试环境**:**Read** `.apm/skills/apm-deploy/SKILL.md` 并按其流程执行 `apm deploy`(以命令结果判断是否跳过);**后端**涉及 SQL 变更时,须在回复中引用 `docs/SQL.md`,并写明待执行的 SQL 文件名或执行顺序。
90
90
  3. **白名单对账**:在回复中逐文件列出本次改动与计划白名单的对应关系。
91
91
 
92
92
  **注意:不做联调。** 前后端各自按 `API.md` 交付,接口对不上属于契约或实现问题,由 diff 评审与人工验收暴露后打回修复;禁止自行发起「联调」「接口实测」类的开放式动作。