#!/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