diff --git a/src-tauri/src/commands/cicd.rs b/src-tauri/src/commands/cicd.rs index 69372e3..71dfb09 100644 --- a/src-tauri/src/commands/cicd.rs +++ b/src-tauri/src/commands/cicd.rs @@ -391,8 +391,8 @@ jobs: - run: pnpm install --frozen-lockfile - run: {build_cmd} - - run: pnpm lint --if-present - - run: pnpm test --if-present --passWithNoTests + - run: pnpm run --if-present lint + - run: pnpm run --if-present test --passWithNoTests "# ); @@ -546,6 +546,16 @@ mod tests { let (content, filename, secrets) = build_pr_ci_workflow(&cfg("pr_ci")); assert!(content.contains("pull_request"), "触发器应为 pull_request"); assert!(content.contains("pnpm build"), "应含构建步骤"); + // --if-present 只对 pnpm run 子命令有效,直接 `pnpm lint --if-present` 会把 + // lint 当外部命令执行报 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL(炼境自身 CI 踩过) + assert!( + content.contains("pnpm run --if-present lint"), + "lint 步骤须用 pnpm run --if-present 语法" + ); + assert!( + content.contains("pnpm run --if-present test"), + "test 步骤须用 pnpm run --if-present 语法" + ); assert!(!content.contains("SERVER_HOST"), "不应含 SSH 部署配置"); assert!(!content.contains("ssh-action"), "不应含 SSH Action"); assert_eq!(filename, "pr-check.yml");