fix: 精准读取Jenkins顶层构建结果
This commit is contained in:
parent
223a4d1d62
commit
f5dbf31f82
@ -21,7 +21,7 @@
|
|||||||
- 生成改动文档同步计划:按变更文件自动提示需要同步的 README、API、AGENTS、docs、Obsidian、skill 和 ktWorkflow 入口;MCP 不可用时用 `pnpm run change-doc-sync -- --project <project>` 作为 CLI fallback。
|
- 生成改动文档同步计划:按变更文件自动提示需要同步的 README、API、AGENTS、docs、Obsidian、skill 和 ktWorkflow 入口;MCP 不可用时用 `pnpm run change-doc-sync -- --project <project>` 作为 CLI fallback。
|
||||||
- 生成多仓库提交/推送计划:按仓库分组、建议提交信息、列出提交和推送前检查。
|
- 生成多仓库提交/推送计划:按仓库分组、建议提交信息、列出提交和推送前检查。
|
||||||
- 生成远程只读健康检查和数据库同步安全向导:覆盖飞牛 NAS 服务探测、GTID、`.kt-workspace/db-sync` 转储、备份库和行数校验。
|
- 生成远程只读健康检查和数据库同步安全向导:覆盖飞牛 NAS 服务探测、GTID、`.kt-workspace/db-sync` 转储、备份库和行数校验。
|
||||||
- 生成或执行部署观测:把 Jenkins build、`build.xml` SCM revision/result、日志尾部、K8s Deployment、Pod、`/health/runtime` 和任务 smoke 汇总成 `.kt-workspace/test-artifacts/deploy-observation` 下的运行态证据;Jenkins 状态优先取日志尾部最终 `Finished:`,没有最终行时回退到 `build.xml` 的最终 result,result 为空才视为未完成。
|
- 生成或执行部署观测:把 Jenkins build、`build.xml` SCM revision/top-level result、日志尾部、K8s Deployment、Pod、`/health/runtime` 和任务 smoke 汇总成 `.kt-workspace/test-artifacts/deploy-observation` 下的运行态证据;Jenkins 状态优先取日志尾部最终 `Finished:`,没有最终行时回退到 `build.xml` 的顶层 result,result 为空才视为未完成。
|
||||||
- 生成专项组件工作流:KtTable、BlogArgon、AdminAuth、QQBot、FF14Plugin、NapCatLogin、SystemLog、Knife4jSwagger、FnosK8s 的防踩坑清单和验证点。
|
- 生成专项组件工作流:KtTable、BlogArgon、AdminAuth、QQBot、FF14Plugin、NapCatLogin、SystemLog、Knife4jSwagger、FnosK8s 的防踩坑清单和验证点。
|
||||||
- 生成验证进程清理计划:按项目路径和端口给出 PowerShell 检查命令,不直接杀进程。
|
- 生成验证进程清理计划:按项目路径和端口给出 PowerShell 检查命令,不直接杀进程。
|
||||||
- 清理历史产物:统一治理 `.kt-workspace` 下的测试/验证产物,按目录最近修改时间只保留最近 3 轮,模板目录永久保留;CLI 默认 dry-run,真实清理必须显式传 `--execute`。
|
- 清理历史产物:统一治理 `.kt-workspace` 下的测试/验证产物,按目录最近修改时间只保留最近 3 轮,模板目录永久保留;CLI 默认 dry-run,真实清理必须显式传 `--execute`。
|
||||||
|
|||||||
@ -1946,6 +1946,7 @@ export async function runSelfTest(): Promise<void> {
|
|||||||
'rm -f "$KUBECONFIG_TEMP"',
|
'rm -f "$KUBECONFIG_TEMP"',
|
||||||
'kubectl --kubeconfig "$KUBECONFIG_ACTIVE"',
|
'kubectl --kubeconfig "$KUBECONFIG_ACTIVE"',
|
||||||
"section jenkins_build_xml",
|
"section jenkins_build_xml",
|
||||||
|
"s#^ <result>\\([^<]*\\)</result>[[:space:]]*\\$#\\1#p",
|
||||||
]) {
|
]) {
|
||||||
if (!deployObservationCommandText.includes(expected)) {
|
if (!deployObservationCommandText.includes(expected)) {
|
||||||
throw new Error(`deploy observation kubeconfig self-check failed: ${expected}`);
|
throw new Error(`deploy observation kubeconfig self-check failed: ${expected}`);
|
||||||
|
|||||||
@ -330,7 +330,7 @@ function buildRemoteScript(input: NormalizedInput): string {
|
|||||||
'section jenkins_meta',
|
'section jenkins_meta',
|
||||||
'printf "jobName=%s\\n" "$JOB_NAME"',
|
'printf "jobName=%s\\n" "$JOB_NAME"',
|
||||||
'printf "buildNumber=%s\\n" "$BUILD_NUMBER"',
|
'printf "buildNumber=%s\\n" "$BUILD_NUMBER"',
|
||||||
'if [ -f "$BUILD_DIR/build.xml" ]; then RESULT="$(grep -Eo "<result>[^<]*</result>" "$BUILD_DIR/build.xml" 2>/dev/null | sed -E "s#</?result>##g" | tail -1 || true)"; else RESULT=""; fi',
|
'if [ -f "$BUILD_DIR/build.xml" ]; then RESULT="$(sed -n "s#^ <result>\\([^<]*\\)</result>[[:space:]]*\\$#\\1#p" "$BUILD_DIR/build.xml" 2>/dev/null | head -n 1 || true)"; else RESULT=""; fi',
|
||||||
'printf "result=%s\\n" "$RESULT"',
|
'printf "result=%s\\n" "$RESULT"',
|
||||||
'section jenkins_build_xml',
|
'section jenkins_build_xml',
|
||||||
'if [ -f "$BUILD_DIR/build.xml" ]; then grep -E "<(hash|sha1)>[0-9a-fA-F]{7,40}</(hash|sha1)>" "$BUILD_DIR/build.xml" 2>/dev/null | head -n 20 || true; else echo "jenkins build.xml not found: $BUILD_DIR/build.xml"; fi',
|
'if [ -f "$BUILD_DIR/build.xml" ]; then grep -E "<(hash|sha1)>[0-9a-fA-F]{7,40}</(hash|sha1)>" "$BUILD_DIR/build.xml" 2>/dev/null | head -n 20 || true; else echo "jenkins build.xml not found: $BUILD_DIR/build.xml"; fi',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user