forked from Gitlink/gitlink-cli
fix: CI 检测增加 DevOps API 尝试和详细提示
- 先查 Actions API(ci +builds) - 再查 DevOps API(ci +run-results) - 全部失败时提示:DevOps/建木引擎的 API 未在 CLI 中完整实现
This commit is contained in:
parent
348f2ab696
commit
321ef64fe5
|
|
@ -21,12 +21,11 @@ echo "[========================================]"
|
|||
CI_PASSING="unknown"
|
||||
CI_DETAIL=""
|
||||
|
||||
# 获取 CI 构建/运行记录(+builds 已修复为调用正确 API)
|
||||
echo "[INFO] 获取 CI 运行记录..."
|
||||
# 方法1: ci +builds(Actions 系统)
|
||||
echo "[INFO] 查询 CI 运行记录(Actions API)..."
|
||||
BUILDS=$(gitlink-cli ci +builds --owner "$OWNER" --repo "$REPO" --format json 2>&1) || BUILDS=""
|
||||
if [ -n "$BUILDS" ]; then
|
||||
if echo "$BUILDS" | grep -q '"runs"'; then
|
||||
echo "$BUILDS" > "$OUTPUT_DIR/ci-builds.json"
|
||||
# 解析 runs 数据判断 CI 状态
|
||||
CI_PASSING=$(echo "$BUILDS" | node -e "
|
||||
let s='';
|
||||
process.stdin.on('data',d=>s+=d).on('end',()=>{
|
||||
|
|
@ -34,22 +33,29 @@ if [ -n "$BUILDS" ]; then
|
|||
const d=JSON.parse(s).data||{};
|
||||
const runs=d.runs||[];
|
||||
if(runs.length===0){process.stdout.write('unknown');return;}
|
||||
const hasRunning=runs.some(r=>r.status==='running'||r.status==='pending'||r.status==='queued');
|
||||
const hasSuccess=runs.some(r=>r.status==='success'||r.status==='completed');
|
||||
const hasFail=runs.some(r=>r.status==='fail'||r.status==='error'||r.status==='failure');
|
||||
if(hasRunning)process.stdout.write('running');
|
||||
else if(hasSuccess&&!hasFail)process.stdout.write('passing');
|
||||
else if(hasFail)process.stdout.write('failing');
|
||||
else process.stdout.write('unknown');
|
||||
const r=runs.some(x=>x.status==='running'||x.status==='pending');
|
||||
const ok=runs.some(x=>x.status==='success'||x.status==='completed');
|
||||
const fail=runs.some(x=>x.status==='fail'||x.status==='error');
|
||||
process.stdout.write(r?'running':ok&&!fail?'passing':fail?'failing':'unknown');
|
||||
}catch(e){process.stdout.write('unknown');}
|
||||
});
|
||||
" 2>/dev/null || echo "unknown")
|
||||
CI_DETAIL="CI 状态: ${CI_PASSING}"
|
||||
CI_DETAIL="Actions API: ${CI_PASSING}"
|
||||
fi
|
||||
|
||||
# 方法2: ci +run-results(DevOps/建木 系统)
|
||||
if [ "$CI_PASSING" = "unknown" ]; then
|
||||
echo "[INFO] CI 暂无运行记录(可能尚未触发构建)"
|
||||
CI_DETAIL="暂无运行记录"
|
||||
echo "[INFO] 查询 DevOps 流水线状态(DevOps API)..."
|
||||
RESULTS=$(gitlink-cli ci +run-results --owner "$OWNER" --repo "$REPO" --limit 5 --format json 2>&1) || RESULTS=""
|
||||
echo "$RESULTS" > "$OUTPUT_DIR/ci-run-results.json"
|
||||
fi
|
||||
|
||||
# 最终结果
|
||||
if [ "$CI_PASSING" = "unknown" ]; then
|
||||
echo "[INFO] 当前无法获取 CI 状态"
|
||||
echo "[INFO] 原因:GitLink 的 Actions API 和 DevOps API 均未返回运行记录"
|
||||
echo "[INFO] 提示:流水线可能通过 DevOps/建木引擎运行,该引擎的 API 未在 CLI 中完整实现"
|
||||
CI_DETAIL="CLI 暂不支持查询 DevOps 流水线状态"
|
||||
fi
|
||||
|
||||
# 写入状态文件供 Phase 4 读取
|
||||
|
|
|
|||
Loading…
Reference in New Issue