docs(wiki): 瘦身 log.md 至一行摘要规范 + 清除 meta 冗余 #34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | ||
| on: | ||
| push: | ||
| branches: [main, master] | ||
| pull_request: | ||
| branches: [main, master] | ||
| env: | ||
| JAVA_VERSION: '21' | ||
| jobs: | ||
| build: | ||
| # WS-1.1 FIRE 后(commit 38c514a):master 为单构建 Boot 4.0/SDR 4.0/Java 21/Redisson 3.50。 | ||
| # Boot 4.0 最低 Java 21,故去掉 Java 17 matrix;Boot 4 为唯一构建线(boot4 profile | ||
| # 已上移为 pom 默认,见 commit 9ad22bf),构建无需 -Pboot4 flag。 | ||
| # 历史:`compatibility` job(versions:set-parent 探测 Boot 3.3/3.5 编译)已删除 — | ||
| # 双分支策略废弃,boot3 不再维护,继续跑废的兼容矩阵只是噪声 + MojoNotFoundException。 | ||
| name: Build and Test (Java ${{ env.JAVA_VERSION }}) | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| - name: Set up JDK ${{ env.JAVA_VERSION }} | ||
| uses: ./.github/actions/setup-jdk-21 | ||
| - name: Build with Maven Wrapper | ||
| run: ./mvnw clean verify -B | ||
| env: | ||
| MAVEN_OPTS: -Xmx1024m | ||
| - name: Upload Test Results | ||
| if: always() | ||
| uses: actions/upload-artifact@v5 | ||
| with: | ||
| name: test-results-java-${{ env.JAVA_VERSION }} | ||
| path: target/surefire-reports/ | ||
| retention-days: 7 | ||
| - name: Upload JaCoCo Report | ||
| if: always() | ||
| uses: actions/upload-artifact@v5 | ||
| with: | ||
| name: jacoco-report-java-${{ env.JAVA_VERSION }} | ||
| path: target/site/jacoco/ | ||
| retention-days: 7 | ||
| docs-link-check: | ||
| # 文档一致性护栏:防止 a5ab55b 移除的过度工程特性被对外文档重新宣称, | ||
| # 并校验 README 宣称的关键类在 src 存在。(Q2 诚实化 + Q11 可推广护栏) | ||
| name: Docs ↔ Source Consistency | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| - name: Guard against removed-feature regressions in docs | ||
| run: | | ||
| set -e | ||
| # 1. 黑名单:被移除的过度工程符号不应再出现在对外 README 中 | ||
| banned="CircuitBreakerCacheWrapper RateLimiterCacheWrapper \ | ||
| SpelConditionEvaluator CacheEvictedEvent CacheMetricsRecorder \ | ||
| BloomFilterProvider LockProvider RedissonLockProvider" | ||
| for sym in $banned; do | ||
| # 精准匹配:仅当代码标识符(反引号包裹 \`sym\`)出现时才视为"重新宣称已移除 | ||
| # 特性"的回归。纯文本历史叙述(无反引号,如迁移说明里的 "previously provided | ||
| # by X")允许存在,避免误伤合法的"为何移除"文档。 | ||
| hits=$(grep -rnF "\`$sym\`" README.md README.zh-CN.md 2>/dev/null || true) | ||
| if [ -n "$hits" ]; then | ||
| echo "::error::Removed symbol '$sym' is still referenced as a code identifier in README:" | ||
| echo "$hits" | ||
| exit 1 | ||
| fi | ||
| done | ||
| echo "OK: No removed-symbol regressions (as code identifiers) in README." | ||
| # 2. 白名单:README 宣称的关键类必须在 src 存在 | ||
| for cls in RedisCacheAutoConfiguration RedisProCacheProperties RedisProCache \ | ||
| RedisProCacheManager CacheHandlerChainFactory RedisCacheInterceptor \ | ||
| RedisCacheOperationSource RedissonConfiguration; do | ||
| if ! find src/main/java -name "${cls}.java" | grep -q .; then | ||
| echo "::error::Key class '$cls' referenced in docs not found in src/main/java" | ||
| exit 1 | ||
| fi | ||
| done | ||
| echo "OK: All key classes referenced in docs exist in src." | ||
| checkstyle: | ||
| name: Checkstyle | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| - name: Set up JDK ${{ env.JAVA_VERSION }} | ||
| uses: ./.github/actions/setup-jdk-21 | ||
| - name: Run Checkstyle | ||
| run: ./mvnw checkstyle:check -B | ||
| qodana: | ||
| name: Qodana Code Quality | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| - name: Qodana Scan | ||
| uses: JetBrains/qodana-action@v2025.3 | ||
| with: | ||
| cache-dir: .qodana/cache | ||
| use-caches: true | ||
| env: | ||
| QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} | ||
| continue-on-error: true | ||
| - name: Upload Qodana Report | ||
| if: always() | ||
| uses: actions/upload-artifact@v5 | ||
| with: | ||
| name: qodana-report | ||
| path: ./qodana/report/ | ||
| retention-days: 7 | ||
| dependency-check: | ||
| name: Dependency Analysis | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| - name: Set up JDK ${{ env.JAVA_VERSION }} | ||
| uses: ./.github/actions/setup-jdk-21 | ||
| - name: Dependency Analysis | ||
| run: ./mvnw dependency:analyze -B | ||
| continue-on-error: true | ||
| - name: Check Dependency Updates | ||
| run: ./mvnw versions:display-dependency-updates -B | ||
| continue-on-error: true | ||
| build-package: | ||
| name: Build Package | ||
| runs-on: ubuntu-latest | ||
| needs: [build, docs-link-check, checkstyle, qodana, dependency-check] | ||
| # 不用 if: always():恢复 needs 默认门控——仅当 gating job(build/checkstyle/docs-link-check) | ||
| # 成功时才打包上传。compatibility/qodana/dependency-check 自带 continue-on-error,失败不阻塞。 | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| - name: Set up JDK ${{ env.JAVA_VERSION }} | ||
| uses: ./.github/actions/setup-jdk-21 | ||
| - name: Build JAR | ||
| run: ./mvnw clean package -DskipTests -B | ||
| - name: Upload JAR Artifact | ||
| uses: actions/upload-artifact@v5 | ||
| with: | ||
| name: resicache-artifact | ||
| path: target/*.jar | ||
| retention-days: 7 | ||