6eac0b2cf2
Worker Base Image Build / Build Worker Base Images (worker-base-builder-cache, infra/docker/worker-base-builder.Dockerfile, worker-base-builder, builder) (push) Failing after 1m54s
Worker Base Image Build / Build Worker Base Images (worker-base-runtime-cache, infra/docker/worker-base-runtime.Dockerfile, worker-base-runtime, runtime) (push) Failing after 1m36s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI/CD Pipeline / Validate - Code Quality (push) Failing after 1m29s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m4s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m2s
CI/CD Pipeline / Unit Tests (push) Successful in 3m38s
CI/CD Pipeline / Integration Tests (push) Successful in 2m0s
CI/CD Pipeline / Frontend Lint (push) Successful in 28s
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 44s
CI/CD Pipeline / PR Build API Image (push) Has been skipped
CI/CD Pipeline / PR Build Web Image (push) Has been skipped
CI/CD Pipeline / PR Build Worker Image (push) Has been skipped
CI/CD Pipeline / Build Staging API Image (push) Failing after 2m16s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 8m14s
CI/CD Pipeline / Build Staging Worker Image (push) Failing after 2m0s
CI/CD Pipeline / Build Production API Image (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (push) Has been skipped
同步内容: 1. CI流水线配置(ci-pipeline.yml)与develop对齐 2. PR构建脚本docker_build_only.sh增加buildx→docker build回退 3. pre-build步骤worker基础镜像构建增加buildx回退 4. 单元测试脚本全量覆盖率改为仅报告不阻塞 5. diff-cover依赖加入requirements-dev.txt 6. worker base builder/runtime Dockerfile同步 7. test_config_oss.py clear=False→clear=True修复OSS污染 8. Frontend Lint增加prettier依赖
98 lines
2.5 KiB
Bash
98 lines
2.5 KiB
Bash
#!/usr/bin/env bash
|
||
#
|
||
# CI 健康度看板一键生成脚本
|
||
# - 从 Gitea Actions API 拉取数据
|
||
# - 生成 HTML 可视化看板
|
||
# - 输出文件路径
|
||
#
|
||
# 用法:
|
||
# bash scripts/ci/generate_ci_dashboard.sh [--days 7] [--output ci_dashboard.html]
|
||
#
|
||
# 环境变量:
|
||
# GITEA_TOKEN API Token(必需)
|
||
# GITEA_URL Gitea 地址(可选,默认 https://git.xiaoxiajianji.com)
|
||
# GITEA_REPO 仓库(可选,默认 xiaoxia/xiaoxia-saas)
|
||
#
|
||
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
|
||
|
||
# 默认参数
|
||
DAYS=7
|
||
OUTPUT="ci_dashboard.html"
|
||
|
||
# 解析参数
|
||
while [[ $# -gt 0 ]]; do
|
||
case "$1" in
|
||
--days)
|
||
DAYS="$2"
|
||
shift 2
|
||
;;
|
||
--output|-o)
|
||
OUTPUT="$2"
|
||
shift 2
|
||
;;
|
||
--help|-h)
|
||
echo "用法: bash scripts/ci/generate_ci_dashboard.sh [--days 7] [--output ci_dashboard.html]"
|
||
echo ""
|
||
echo "选项:"
|
||
echo " --days N 统计最近 N 天 (默认 7)"
|
||
echo " --output PATH HTML 输出路径 (默认 ci_dashboard.html)"
|
||
echo " --help 显示帮助"
|
||
echo ""
|
||
echo "环境变量:"
|
||
echo " GITEA_TOKEN API Token(必需)"
|
||
echo " GITEA_URL Gitea 地址"
|
||
echo " GITEA_REPO 仓库"
|
||
exit 0
|
||
;;
|
||
*)
|
||
echo "未知参数: $1"
|
||
exit 1
|
||
;;
|
||
esac
|
||
done
|
||
|
||
# 检查 Python
|
||
if ! command -v python3 &> /dev/null; then
|
||
echo "[ERROR] 未找到 python3,请先安装 Python 3"
|
||
exit 1
|
||
fi
|
||
|
||
# 检查 Token
|
||
if [[ -z "${GITEA_TOKEN:-}" ]]; then
|
||
echo "[ERROR] 请设置 GITEA_TOKEN 环境变量"
|
||
exit 1
|
||
fi
|
||
|
||
echo "========================================"
|
||
echo " CI 健康度看板生成器"
|
||
echo "========================================"
|
||
echo ""
|
||
echo "统计天数: ${DAYS} 天"
|
||
echo "输出文件: ${OUTPUT}"
|
||
echo ""
|
||
|
||
# 生成 HTML 看板
|
||
echo "[INFO] 正在拉取数据并生成看板..."
|
||
python3 "${SCRIPT_DIR}/ci_dashboard.py" \
|
||
--days "${DAYS}" \
|
||
--html \
|
||
--html-output "${OUTPUT}"
|
||
|
||
echo ""
|
||
echo "========================================"
|
||
echo " ✅ 看板生成完成!"
|
||
echo "========================================"
|
||
echo ""
|
||
echo "文件路径: $(realpath "${OUTPUT}")"
|
||
echo ""
|
||
|
||
# 如果在 macOS 上,尝试打开
|
||
if [[ "$(uname)" == "Darwin" ]]; then
|
||
echo "[INFO] 正在打开浏览器..."
|
||
open "${OUTPUT}"
|
||
fi
|