feat: 项目整体命名修改cache-schema-checker
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Redis 序列化结构检测 — CI 集成说明
|
||||
# 缓存序列化结构检测 — CI 集成说明
|
||||
|
||||
---
|
||||
|
||||
@@ -11,7 +11,7 @@ Gitea Actions 触发
|
||||
↓
|
||||
浅克隆业务仓库(depth=2)
|
||||
↓
|
||||
从 Nexus 下载 redis-schema-checker.jar
|
||||
从 Nexus 下载 cache-schema-checker.jar
|
||||
↓
|
||||
java -jar 执行(对比 HEAD~1 与 HEAD)
|
||||
↓
|
||||
@@ -28,7 +28,7 @@ mode=block 且含 P0/P1/P2 任一变更 → exit 1(流水线失败)
|
||||
|----|------|
|
||||
| Gitea Runner | 标签 `jdk11`,已安装 Java 11 |
|
||||
| Nexus 私库 | 可访问 `http://192.168.3.25:18081/nexus/repository/maven-releases` |
|
||||
| 工具 JAR | `com.codechecker:redis-schema-checker:1.0.0` 已发布 |
|
||||
| 工具 JAR | `com.codechecker:cache-schema-checker:1.0.0` 已发布 |
|
||||
| 仓库 Secret | `WECOM_ROBOT_WEBHOOK` 已配置 |
|
||||
|
||||
---
|
||||
@@ -41,9 +41,9 @@ mode=block 且含 P0/P1/P2 任一变更 → exit 1(流水线失败)
|
||||
jnpf-java-cloud/
|
||||
├── .gitea/
|
||||
│ ├── workflows/
|
||||
│ │ └── redis-schema-check.yaml # 流水线
|
||||
│ │ └── cache-schema-check.yaml # 流水线
|
||||
│ └── config/
|
||||
│ └── redis-schema-check-config.yaml # 检测配置
|
||||
│ └── cache-schema-check-config.yaml # 检测配置
|
||||
```
|
||||
|
||||
---
|
||||
@@ -51,19 +51,19 @@ jnpf-java-cloud/
|
||||
## 4. 流水线模板
|
||||
|
||||
```yaml
|
||||
name: Redis序列化结构检查
|
||||
run-name: ${{ gitea.actor }}的Redis结构检查
|
||||
name: 缓存序列化结构检查
|
||||
run-name: ${{ gitea.actor }}的缓存结构检查
|
||||
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
REDIS_SCHEMA_CHECKER_VERSION: "1.0.0"
|
||||
REDIS_SCHEMA_CHECKER_REPO_URL: "http://192.168.3.25:18081/nexus/repository/maven-releases"
|
||||
CACHE_SCHEMA_CHECKER_VERSION: "1.0.0"
|
||||
CACHE_SCHEMA_CHECKER_REPO_URL: "http://192.168.3.25:18081/nexus/repository/maven-releases"
|
||||
|
||||
jobs:
|
||||
redis-schema-check:
|
||||
cache-schema-check:
|
||||
if: ${{ gitea.ref != 'refs/heads/pre' && gitea.ref != 'refs/heads/dev' && gitea.ref != 'refs/heads/master-2.0' }}
|
||||
runs-on: jdk11
|
||||
steps:
|
||||
@@ -76,16 +76,16 @@ jobs:
|
||||
|
||||
- name: 检查配置文件
|
||||
run: |
|
||||
if [ ! -f .gitea/config/redis-schema-check-config.yaml ]; then
|
||||
echo "错误: 缺少 .gitea/config/redis-schema-check-config.yaml"
|
||||
if [ ! -f .gitea/config/cache-schema-check-config.yaml ]; then
|
||||
echo "错误: 缺少 .gitea/config/cache-schema-check-config.yaml"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: 从 Nexus 下载检测工具
|
||||
run: |
|
||||
GROUP_PATH="com/codechecker/redis-schema-checker"
|
||||
JAR_NAME="redis-schema-checker-${REDIS_SCHEMA_CHECKER_VERSION}.jar"
|
||||
JAR_URL="${REDIS_SCHEMA_CHECKER_REPO_URL}/${GROUP_PATH}/${REDIS_SCHEMA_CHECKER_VERSION}/${JAR_NAME}"
|
||||
GROUP_PATH="com/codechecker/cache-schema-checker"
|
||||
JAR_NAME="cache-schema-checker-${CACHE_SCHEMA_CHECKER_VERSION}.jar"
|
||||
JAR_URL="${CACHE_SCHEMA_CHECKER_REPO_URL}/${GROUP_PATH}/${CACHE_SCHEMA_CHECKER_VERSION}/${JAR_NAME}"
|
||||
JAR_PATH="/tmp/${JAR_NAME}"
|
||||
|
||||
echo "下载: ${JAR_URL}"
|
||||
@@ -108,7 +108,7 @@ jobs:
|
||||
- name: 验证 JDK
|
||||
run: java -version
|
||||
|
||||
- name: 执行 Redis 结构检测
|
||||
- name: 执行 缓存结构检测
|
||||
env:
|
||||
WECOM_ROBOT_WEBHOOK: ${{ secrets.WECOM_ROBOT_WEBHOOK }}
|
||||
run: |
|
||||
@@ -120,8 +120,8 @@ jobs:
|
||||
|
||||
COMMIT_TIME=$(git log -1 --format=%cd --date=format:'%Y-%m-%d %H:%M:%S')
|
||||
|
||||
java -jar "/tmp/redis-schema-checker-${REDIS_SCHEMA_CHECKER_VERSION}.jar" \
|
||||
--config .gitea/config/redis-schema-check-config.yaml \
|
||||
java -jar "/tmp/cache-schema-checker-${CACHE_SCHEMA_CHECKER_VERSION}.jar" \
|
||||
--config .gitea/config/cache-schema-check-config.yaml \
|
||||
--repo-root . \
|
||||
--old-sha "$OLD_SHA" \
|
||||
--new-sha "$(git rev-parse HEAD)" \
|
||||
@@ -138,7 +138,7 @@ jobs:
|
||||
|--------|------|------|
|
||||
| `demo.yaml` (AI代码质量分析) | AI Code Review | 并行,互不影响 |
|
||||
| `code-check` (CodeChecker) | 通用变更检测 | **同模式**,可并列执行 |
|
||||
| `redis-schema-check` | Redis 结构检测 | 新增 |
|
||||
| `cache-schema-check` | 缓存结构检测 | 新增 |
|
||||
|
||||
建议:三个 job 独立并行,各自 exit code 独立。
|
||||
|
||||
@@ -157,9 +157,9 @@ mvn clean deploy -Dnexus.deploy.enabled=true -DskipTests
|
||||
发布产物:
|
||||
|
||||
```text
|
||||
com/codechecker/redis-schema-checker/1.0.0/
|
||||
├── redis-schema-checker-1.0.0.jar # 可执行 fat-jar
|
||||
└── redis-schema-checker-1.0.0.pom
|
||||
com/codechecker/cache-schema-checker/1.0.0/
|
||||
├── cache-schema-checker-1.0.0.jar # 可执行 fat-jar
|
||||
└── cache-schema-checker-1.0.0.pom
|
||||
```
|
||||
|
||||
---
|
||||
@@ -191,8 +191,8 @@ com/codechecker/redis-schema-checker/1.0.0/
|
||||
|
||||
```bash
|
||||
# 在 jnpf-java-cloud 根目录
|
||||
java -jar /path/to/redis-schema-checker-1.0.0.jar \
|
||||
--config .gitea/config/redis-schema-check-config.yaml \
|
||||
java -jar /path/to/cache-schema-checker-1.0.0.jar \
|
||||
--config .gitea/config/cache-schema-check-config.yaml \
|
||||
--repo-root . \
|
||||
--old-sha HEAD~1 \
|
||||
--new-sha HEAD \
|
||||
|
||||
46
docs/实施方案.md
46
docs/实施方案.md
@@ -1,4 +1,4 @@
|
||||
# Redis 序列化结构变更检测 — 实施方案
|
||||
# 缓存序列化结构变更检测 — 实施方案
|
||||
|
||||
> 版本:v0.1
|
||||
> 日期:2026-07-13
|
||||
@@ -104,12 +104,12 @@
|
||||
redisCheck 仓库
|
||||
├── 开发 Java 分析工具
|
||||
├── mvn package 打 fat-jar
|
||||
├── 发布到 Nexus:com.codechecker:redis-schema-checker:{version}
|
||||
├── 发布到 Nexus:com.codechecker:cache-schema-checker:{version}
|
||||
└── 提供默认配置模板
|
||||
|
||||
jnpf-java-cloud 仓库
|
||||
├── .gitea/workflows/redis-schema-check.yaml
|
||||
├── .gitea/config/redis-schema-check-config.yaml
|
||||
├── .gitea/workflows/cache-schema-check.yaml
|
||||
├── .gitea/config/cache-schema-check-config.yaml
|
||||
└── push 时下载 jar 并执行检测
|
||||
```
|
||||
|
||||
@@ -119,11 +119,11 @@ jnpf-java-cloud 仓库
|
||||
flowchart TB
|
||||
subgraph Gitea["Gitea Push Pipeline"]
|
||||
A[push 事件] --> B[浅克隆 old/new 提交]
|
||||
B --> C[下载 redis-schema-checker.jar]
|
||||
B --> C[下载 cache-schema-checker.jar]
|
||||
C --> D[java -jar 执行检测]
|
||||
end
|
||||
|
||||
subgraph Checker["redis-schema-checker (JDK 11)"]
|
||||
subgraph Checker["cache-schema-checker (JDK 11)"]
|
||||
D --> E[GitDiffScanner]
|
||||
E --> F[RedisWritePointDetector]
|
||||
F --> G[JavaSchemaExtractor]
|
||||
@@ -195,8 +195,8 @@ redisCheck/
|
||||
│ ├── resources/fixtures/tenant/
|
||||
│ └── java/...
|
||||
├── .gitea/
|
||||
│ ├── workflows/redis-schema-check.yaml
|
||||
│ └── config/redis-schema-check-config.yaml
|
||||
│ ├── workflows/cache-schema-check.yaml
|
||||
│ └── config/cache-schema-check-config.yaml
|
||||
└── target/ # 构建产物
|
||||
```
|
||||
|
||||
@@ -204,11 +204,11 @@ redisCheck/
|
||||
|
||||
```xml
|
||||
<groupId>com.codechecker</groupId>
|
||||
<artifactId>redis-schema-checker</artifactId>
|
||||
<artifactId>cache-schema-checker</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
```
|
||||
|
||||
打包为 **shaded/fat jar**,主类:`com.codechecker.redis.cli.RedisSchemaCheckerMain`
|
||||
打包为 **shaded/fat jar**,主类:`com.codechecker.cache.cli.CacheSchemaCheckerMain`
|
||||
|
||||
---
|
||||
|
||||
@@ -217,8 +217,8 @@ redisCheck/
|
||||
### 6.1 CLI 参数
|
||||
|
||||
```bash
|
||||
java -jar redis-schema-checker-1.0.0.jar \
|
||||
--config .gitea/config/redis-schema-check-config.yaml \
|
||||
java -jar cache-schema-checker-1.0.0.jar \
|
||||
--config .gitea/config/cache-schema-check-config.yaml \
|
||||
--repo-root /path/to/jnpf-java-cloud \
|
||||
--old-sha abc123 \
|
||||
--new-sha def456 \
|
||||
@@ -251,7 +251,7 @@ java -jar redis-schema-checker-1.0.0.jar \
|
||||
|
||||
#### Step 1:加载配置
|
||||
|
||||
读取 `redis-schema-check-config.yaml`,合并默认值(见 `docs/配置说明.md`)。
|
||||
读取 `cache-schema-check-config.yaml`,合并默认值(见 `docs/配置说明.md`)。
|
||||
|
||||
#### Step 2:Git Diff 扫描
|
||||
|
||||
@@ -416,15 +416,15 @@ manual_mappings:
|
||||
| 层级 | 位置 | 职责 |
|
||||
|------|------|------|
|
||||
| 默认配置 | 工具 jar 内 `default-config.yaml` | 检测模式、忽略规则、严重级别默认值 |
|
||||
| 业务覆盖 | `jnpf-java-cloud/.gitea/config/redis-schema-check-config.yaml` | mode、notify、include_modules、manual_mappings |
|
||||
| 业务覆盖 | `jnpf-java-cloud/.gitea/config/cache-schema-check-config.yaml` | mode、notify、include_modules、manual_mappings |
|
||||
|
||||
合并规则:**业务配置覆盖默认配置**,未声明的项沿用默认值。
|
||||
|
||||
CLI 调用:
|
||||
|
||||
```bash
|
||||
java -jar redis-schema-checker.jar \
|
||||
--config .gitea/config/redis-schema-check-config.yaml \
|
||||
java -jar cache-schema-checker.jar \
|
||||
--config .gitea/config/cache-schema-check-config.yaml \
|
||||
...
|
||||
```
|
||||
|
||||
@@ -452,12 +452,12 @@ notify:
|
||||
详见 `docs/CI集成说明.md`。核心流程:
|
||||
|
||||
```yaml
|
||||
# jnpf-java-cloud/.gitea/workflows/redis-schema-check.yaml
|
||||
name: Redis序列化结构检查
|
||||
# jnpf-java-cloud/.gitea/workflows/cache-schema-check.yaml
|
||||
name: 缓存序列化结构检查
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
redis-schema-check:
|
||||
cache-schema-check:
|
||||
if: ${{ gitea.ref != 'refs/heads/pre' && gitea.ref != 'refs/heads/dev' && gitea.ref != 'refs/heads/master-2.0' }}
|
||||
runs-on: jdk11
|
||||
steps:
|
||||
@@ -469,7 +469,7 @@ jobs:
|
||||
|
||||
- name: 下载检测工具
|
||||
run: |
|
||||
# 从 Nexus 下载 redis-schema-checker jar
|
||||
# 从 Nexus 下载 cache-schema-checker jar
|
||||
...
|
||||
|
||||
- name: 执行检测
|
||||
@@ -478,8 +478,8 @@ jobs:
|
||||
run: |
|
||||
OLD_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "")
|
||||
[ -z "$OLD_SHA" ] && exit 0
|
||||
java -jar /tmp/redis-schema-checker-1.0.0.jar \
|
||||
--config .gitea/config/redis-schema-check-config.yaml \
|
||||
java -jar /tmp/cache-schema-checker-1.0.0.jar \
|
||||
--config .gitea/config/cache-schema-check-config.yaml \
|
||||
--repo-root . \
|
||||
--old-sha "$OLD_SHA" \
|
||||
--new-sha "$(git rev-parse HEAD)" \
|
||||
@@ -578,7 +578,7 @@ jobs:
|
||||
| # | 决策项 | 结论 |
|
||||
|---|--------|------|
|
||||
| 1 | 阻断范围 | `block` 模式下 **P0/P1/P2 全部阻断**(exit 1) |
|
||||
| 2 | 发布坐标 | 独立产物 `com.codechecker:redis-schema-checker:1.0.0` |
|
||||
| 2 | 发布坐标 | 独立产物 `com.codechecker:cache-schema-checker:1.0.0` |
|
||||
| 3 | 配置归属 | **双层配置**:jar 内 `default-config.yaml` + 业务仓覆盖合并 |
|
||||
| 4 | 上线策略 | 先 `notify` 观察 **1 周**,稳定后手动切 `block` |
|
||||
| 5 | 检测范围 | **仅 `src/main/java`**,不扫描测试代码 |
|
||||
|
||||
14
docs/配置说明.md
14
docs/配置说明.md
@@ -1,6 +1,6 @@
|
||||
# Redis 序列化结构检测 — 配置说明
|
||||
# 缓存序列化结构检测 — 配置说明
|
||||
|
||||
> **双层配置**:工具 jar 内置 `default-config.yaml`(默认) + 业务仓库 `.gitea/config/redis-schema-check-config.yaml`(覆盖)
|
||||
> **双层配置**:工具 jar 内置 `default-config.yaml`(默认) + 业务仓库 `.gitea/config/cache-schema-check-config.yaml`(覆盖)
|
||||
|
||||
---
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
```text
|
||||
jar 内 default-config.yaml(工具仓维护)
|
||||
↓ 深度合并
|
||||
业务仓 redis-schema-check-config.yaml(业务仓维护)
|
||||
业务仓 cache-schema-check-config.yaml(业务仓维护)
|
||||
↓
|
||||
最终生效配置
|
||||
```
|
||||
@@ -21,7 +21,7 @@ jar 内 default-config.yaml(工具仓维护)
|
||||
### 1.1 业务仓最小配置示例
|
||||
|
||||
```yaml
|
||||
# jnpf-java-cloud/.gitea/config/redis-schema-check-config.yaml
|
||||
# jnpf-java-cloud/.gitea/config/cache-schema-check-config.yaml
|
||||
mode: notify
|
||||
|
||||
notify:
|
||||
@@ -68,7 +68,7 @@ notify:
|
||||
# 无变更时是否也发通知(一般 false)
|
||||
notify_on_clean: false
|
||||
# 消息标题前缀
|
||||
title_prefix: "[Redis结构变更]"
|
||||
title_prefix: "[缓存结构变更]"
|
||||
|
||||
# 忽略规则
|
||||
ignore:
|
||||
@@ -173,7 +173,7 @@ mode: block
|
||||
| `enabled` | boolean | true | 是否发企微 |
|
||||
| `webhook_env` | string | WECOM_ROBOT_WEBHOOK | 环境变量名 |
|
||||
| `notify_on_clean` | boolean | false | 无变更时是否通知 |
|
||||
| `title_prefix` | string | [Redis结构变更] | 消息标题前缀 |
|
||||
| `title_prefix` | string | [缓存结构变更] | 消息标题前缀 |
|
||||
|
||||
### 3.4 ignore.key_patterns
|
||||
|
||||
@@ -238,7 +238,7 @@ suppressions:
|
||||
## 5. 企微消息格式示例
|
||||
|
||||
```markdown
|
||||
## [Redis结构变更] jnpf-java-cloud
|
||||
## [缓存结构变更] jnpf-java-cloud
|
||||
|
||||
> 分支: feature/tenant-cache
|
||||
> 提交: a1b2c3d → e4f5g6h
|
||||
|
||||
Reference in New Issue
Block a user