ci: 运行 PostgreSQL adapter 集成测试 #5

Merged
panxiao81 merged 2 commits from ci/postgresql-integration into main 2026-09-10 17:22:09 +00:00
3 changed files with 21 additions and 5 deletions
Showing only changes of commit 98cdc9c2b2 - Show all commits
+7
View File
@@ -30,5 +30,12 @@ jobs:
go mod tidy go mod tidy
make test make test
- name: Running PostgreSQL Integration Tests
run: make test-integration
- name: Clean up Integration Dependencies
if: always()
run: make dev-down
- name: Verify generated files and modules are current - name: Verify generated files and modules are current
run: git diff --exit-code run: git diff --exit-code
+2 -2
View File
@@ -65,8 +65,8 @@ homelab 日常集群。
Gitea Actions 直接使用 `.github/workflows` 中兼容 GitHub Actions 语法的工作流: Gitea Actions 直接使用 `.github/workflows` 中兼容 GitHub Actions 语法的工作流:
- `Tests`:运行生成、格式化、vet、envtest,并检查生成文件和 `go.mod`/`go.sum` - `Tests`:运行生成、格式化、vet、envtest、一次性 Docker adapter integration tests,
没有未提交漂移。 并检查生成文件和 `go.mod`/`go.sum` 没有未提交漂移。
- `Lint`:校验 golangci-lint 配置并运行静态检查。 - `Lint`:校验 golangci-lint 配置并运行静态检查。
- `E2E Tests`:在一次性 Kind 集群中安装 CRD 和 controller,执行端到端验证。 - `E2E Tests`:在一次性 Kind 集群中安装 CRD 和 controller,执行端到端验证。
+12 -3
View File
@@ -108,7 +108,16 @@ Kubernetes auth、最小 policy 和 ESO 必须在 Kind E2E fixture 中验证。
### 3. 运行针对临时依赖的测试或 controller ### 3. 运行针对临时依赖的测试或 controller
adapter 集成测试加入后,统一通过独立 Make target 执行,不默认塞进快速单元测试。 adapter 集成测试通过独立 Make target 执行,不默认塞进快速单元测试:
```sh
make test-integration
```
该 target 会启动一次性 Compose 依赖,并通过 `POSTGRES_TEST_DSN` 把测试指向开发
PostgreSQL。registry 测试会删除并重建固定的测试 schema,因此禁止将该变量指向真实
homelab database。测试后运行 `make dev-down` 清理依赖。
本机运行 controller 时,先确认当前 kubeconfig 指向专用 Kind,而不是真实 homelab: 本机运行 controller 时,先确认当前 kubeconfig 指向专用 Kind,而不是真实 homelab:
```sh ```sh
@@ -157,8 +166,8 @@ E2E fixture 必须把测试 PostgreSQL、OpenBao 和 ESO 部署进 Kind,并等
-> 删除 Kind -> 删除 Kind
``` ```
当前 controller 尚未实现 PostgreSQL/OpenBao adapter,脚手架 E2E 只能验证 CRD、 当前 controller 只实现 PostgreSQL registry adapter,尚未实现完整 PostgreSQL/OpenBao
manager Deployment 和 metrics endpoint。上述真实依赖 fixture 应与第一个完整 provisioning;现有 E2E 只能验证 CRD、manager Deployment 和 metrics endpoint。上述真实依赖 fixture 应与第一个完整
reconcile 纵向切片一起实现,不能在文档中声称已经通过。 reconcile 纵向切片一起实现,不能在文档中声称已经通过。
## 测试数据与泄漏检查 ## 测试数据与泄漏检查