#!/usr/bin/env bash # scripts/ci/m017_compat_matrix.sh - M-017 兼容矩阵生成脚本 # 功能:生成组件版本兼容性矩阵 # 输入:REPORT_DATE # 输出:compat_matrix_{date}.md set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}" REPORT_DATE="${1:-$(date +%Y-%m-%d)}" REPORT_DIR="${2:-${PROJECT_ROOT}/reports/dependency}" mkdir -p "$REPORT_DIR" echo "[M017-COMPAT-MATRIX] Starting compatibility matrix generation for ${REPORT_DATE}" # 获取Go版本 GO_VERSION=$(go version 2>/dev/null | grep -oP 'go\d+\.\d+' || echo "unknown") # 生成报告 cat > "${REPORT_DIR}/compat_matrix_${REPORT_DATE}.md" << 'MATRIX' # Dependency Compatibility Matrix - REPORT_DATE_PLACEHOLDER ## Go Dependencies (GO_VERSION_PLACEHOLDER) | 组件 | 版本 | Go 1.21 | Go 1.22 | Go 1.23 | Go 1.24 | |------|------|----------|----------|----------|----------| | - | - | - | - | - | - | ## Known Incompatibilities None detected. ## Notes - PASS: 兼容 - FAIL: 不兼容 - UNKNOWN: 未测试 --- *Generated by M-017 Compatibility Matrix Script* MATRIX # 替换日期和Go版本 sed -i "s/REPORT_DATE_PLACEHOLDER/${REPORT_DATE}/g" "${REPORT_DIR}/compat_matrix_${REPORT_DATE}.md" sed -i "s/GO_VERSION_PLACEHOLDER/${GO_VERSION}/g" "${REPORT_DIR}/compat_matrix_${REPORT_DATE}.md" echo "[M017-COMPAT-MATRIX] SUCCESS: Compatibility matrix generated at ${REPORT_DIR}/compat_matrix_${REPORT_DATE}.md"