Skip to content

docs(wiki): 瘦身 log.md 至一行摘要规范 + 清除 meta 冗余 #34

docs(wiki): 瘦身 log.md 至一行摘要规范 + 清除 meta 冗余

docs(wiki): 瘦身 log.md 至一行摘要规范 + 清除 meta 冗余 #34

Workflow file for this run

name: CI

Check failure on line 1 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

(Line: 19, Col: 11): Unrecognized named-value: 'env'. Located at position 1 within expression: env.JAVA_VERSION
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