281699a431
build / build (push) Successful in 1m21s
为什么:生产目标此前是"无条件失败"的占位,编排再完整也不能落地;本轮把它做成真实实现, 并在本机 WeKnora 测试栈的真实 PG/ES 上跑通导入、撤销、预备份与故障恢复。 - ProductionLibraryTarget:Current 读行数+身份摘要;Apply 按阶段真实写入(database/wiki 同事务先删本库再插、resources 传对象、index 搬运原始文档与向量);Verify 比对身份摘要; Restore 按预备份快照回放。 - 撤销真正生效:索引阶段写入后 PruneScope 删除快照里没有的文档。 - ProductionBackupStore:导出前独立完整预备份,导出前后行数不一致即失败。 - worker 用注入配置装配目标与预备份;缺项把变量名写进阶段并失败,不再有占位对象。 - capacity 安全加法防溢出;保留策略组合语义明确(各维度都超限才候选)。 - 新增本机真实服务集成测试(一次性 kg_library_test_* 库 + 随机 ES 索引), 覆盖导入/校验/撤销/预备份/故障注入/恢复。
188 lines
11 KiB
JSON
188 lines
11 KiB
JSON
{
|
||
"_doc": [
|
||
"测试范围声明:**哪些跳过是允许的**。judge 在 scripts/ci_checks.py 里读这个文件。",
|
||
"极性是『默认必需』:没在这里声明的测试,一旦被 SKIP / PENDING ⇒ 门禁红(必需项不能报通过)。",
|
||
"只有『确实需要外部环境、本仓拿不到』的集成/外部依赖用例才写进来,每条必须写清理由。",
|
||
"package 级条目 = 该包里所有 skip 都算『可选未运行』(例如整个包都依赖 TEST_DATABASE_URL)。",
|
||
"test 级条目 = 只豁免那一个用例(包里其它用例仍是必需的)。",
|
||
"报告里会把这些『可选未运行』的条数与原因如实列出 —— 记录,不等于通过。",
|
||
"⚠️ 文件缺失或解析不了 ⇒ 门禁红:范围声明不出来时,不许默认放行。"
|
||
],
|
||
"optional": [
|
||
{
|
||
"package": "knowledge-governance/internal/releaseadapter/v071",
|
||
"test": "TestLibrarySourceReadOnlyDiagnostic",
|
||
"reason": "仅明确只读测试源授权及进程内凭据下运行;真实 PG、ES、OSS 不冻结,属于诊断而非一致性或生产放行;默认 CI 不注入测试源凭据,实际失败必须另行保留而非算通过"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/releaseadapter/v071",
|
||
"test": "TestLibraryCaptureIsolatedStack",
|
||
"reason": "显式隔离 PG、随机 ES 索引和无网络 Docker 夹具的联合捕获验收;默认 CI 不连接这些服务,本地另行运行并做索引覆盖变异反向验证;不代表真实 WeKnora 写入隔离或 Wiki 语义验收"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/libraryfreeze",
|
||
"test": "TestFreezeIsolatedDocker",
|
||
"reason": "只在显式 KG_FREEZE_DOCKER_ISOLATED=1 下使用本地 Docker 与已缓存 busybox 创建随机标签、无网络/无挂载夹具,验证真实暂停恢复和进程中断;默认 CI 不连接 Docker 或运行中的服务,本地另行实跑"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsmirror",
|
||
"test": "TestAILiveBailianPersistsAssessmentAndTranslation",
|
||
"reason": "真实百炼付费调用仅在明确用户授权、独立注入凭据、精确opt-in及一次性隔离库下执行;普通CI不携带服务密钥或消耗配额,本批另行真实后台与浏览器验收"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsmirror",
|
||
"reason": "本包所有集成用例只在显式一次性 loopback kg_qaops_mirror_test_ 库运行;默认 CI 不连共享或生产库;隔离 PG -race 另行实跑"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsquality",
|
||
"test": "TestQualityStoreImmutableHistoryReplayConcurrencyAndStaleness",
|
||
"reason": "仅在显式一次性 loopback kg_qaops_quality_test_ 库执行;默认 CI 不连接共享/生产库,隔离 PG 另行实跑"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestQARecordInternalIdentityAndWholeFilterKeys",
|
||
"reason": "必须显式一次性隔离PG;验证真实只读SQL身份关联/计数及隐私,不连接生产;默认无库时明确跳过,另行本地补验"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestQAUsageGroupsCountEventsOnceOverTheFullFilter",
|
||
"reason": "必须显式一次性隔离PG;验证真实只读SQL身份关联/计数及隐私,不连接生产;默认无库时明确跳过,另行本地补验"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsorg",
|
||
"test": "TestDirectorySyncQueueDurableReplayAndLeaseFencing",
|
||
"reason": "仅显式一次性隔离PG库验证持久化入队、并发重放、进程接管与租约栅栏;不调用真实钉钉源、不连接共享或生产库;默认CI无库则明确跳过"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsorg",
|
||
"test": "TestOrganizationStoreRoundTripAndOptimisticConflict",
|
||
"reason": "仅在显式KG_QAOPS_ORG_TEST_ISOLATED=1且127.0.0.1上的一次性kg_qaops_org_test_库运行;写入治理侧快照与配置,禁止使用共享或生产库;本批已在隔离PG补验"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestSSHDialerTransportsRealTraffic",
|
||
"reason": "需要已批准 SSH 路径和只读版本接口;CI 不带生产 SSH 凭据,缺环境时显式跳过"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestSSHTunnelCloseReapsChild",
|
||
"reason": "需要已批准 SSH 目标来验证子进程回收;无路径的 CI 不应尝试建立生产连接"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestReadOnlyRepositoryAgainstFixtureDatabase",
|
||
"reason": "需显式 KG_DOBOTAI_TEST_ISOLATED=1 且 TEST_DATABASE_URL 通过隔离库护栏,CI 不建生产测试表;本批已在一次性测试库补验"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestBuildRefusesUnsafeAccountsAndTargets",
|
||
"reason": "只在显式一次性测试库创建危险权限夹具,不在生产库验证写入;本批已在隔离库补验"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestSourceRechecksEffectivePrivilegesBeforeEveryQuery",
|
||
"reason": "在一次性测试库模拟额外表写权限,测试前须通过隔离护栏;本批已实际补验"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestQARecordSearchPreservesSourceAndDoesNotMultiplyFeedback",
|
||
"reason": "完整查询/反馈/游标/空列验证需要显式一次性测试库;本批已在隔离库补验"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestProductionReadOnlyCombinedVerification",
|
||
"reason": "需独立批准的生产只读账号文件与 SSH 路径并显式 KG_DOBOTAI_PROD_VERIFY=1;CI 永不自动读取生产库"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestProductionQAQueryReadOnlyVerification",
|
||
"reason": "真实源查询端到端验证仅在显式 KG_DOBOTAI_PROD_VERIFY=1、批准的凭据文件与 SSH 路径下执行;CI 不访问生产,测试不写源库"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/platform/postgres",
|
||
"reason": "整个包的集成用例都要 TEST_DATABASE_URL 指向可销毁测试库;本仓不连生产库,CI 无库 ⇒ 跳过(补验路径:起一次性 PG 后设 TEST_DATABASE_URL)"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/releaseadapter/v071",
|
||
"reason": "v0.7.1 源/目标库与 MinIO 集成环境;无环境即跳过"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/cmd/pp-ledger-import",
|
||
"reason": "导入器集成用例需要 TEST_DATABASE_URL"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/cmd/release-worker",
|
||
"reason": "release runtime 集成用例需要受限文件与运行时环境变量"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/monitoring",
|
||
"reason": "真实服务健康矩阵 / 指标窗口用例需要外部服务可达"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/httpapi",
|
||
"test": "TestUISettingsWriteReadBackIntegration",
|
||
"reason": "系统设置写回读用例需要一个运行中的实例"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/httpapi",
|
||
"test": "TestUISettingsWriteReadBackWithLiveVerification",
|
||
"reason": "同上(带实时校验的那条)"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/version",
|
||
"test": "TestNumberMatchesChangelog",
|
||
"reason": "未注入版本号时按设计 SKIP(本地跑全量测试不该被迫先构建);**它的强制点在 contracts 项**:那里带 -ldflags 跑它并断言真的 PASS、且出现 SKIP 就判红"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/version",
|
||
"test": "TestDevBuildDoesNotClaimRelease",
|
||
"reason": "构建身份未注入时按设计 SKIP(本地跑全量测试不该被迫先构建);**它的强制点在 contracts 项**:那里带 -ldflags 跑它并断言真的 PASS、且出现 SKIP 就判红"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/version",
|
||
"test": "TestReleaseBuildRequiresEvidence",
|
||
"reason": "构建身份未注入时按设计 SKIP(本地跑全量测试不该被迫先构建);**它的强制点在 contracts 项**:那里带 -ldflags 跑它并断言真的 PASS、且出现 SKIP 就判红"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/versionhistory",
|
||
"test": "TestLiveSyncAgainstRealRepository",
|
||
"reason": "真实仓库的只读同步用例需要内部可达的 Gitea(**匿名**,不读凭据);无环境即跳过(补验路径:设 VERSION_HISTORY_LIVE_BASE_URL 后单跑这条)"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsmirror",
|
||
"test": "TestLocalMirrorQueriesNeverRequireSource",
|
||
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsmirror",
|
||
"test": "TestLocalMirrorDurableQueueCoalescesAndAudits",
|
||
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsmirror",
|
||
"test": "TestLocalMirrorSyncActivatesAndCheckpoints",
|
||
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qaopsmirror",
|
||
"test": "TestLocalMirrorPeriodicSyncIsDurableAndDueOnly",
|
||
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/releaseadapter/v071",
|
||
"test": "TestLibraryProductionTargetIsolated",
|
||
"reason": "需要一次性隔离库 kg_library_test_* 与随机 ES 索引(KG_LIBRARY_TEST_DATABASE_URL / KG_LIBRARY_TEST_ELASTIC_URL / KG_LIBRARY_TEST_ISOLATED=1);默认 CI 不提供,本机 WeKnora 测试栈已真实跑通导入/撤销/预备份/故障恢复,CI 中跳过不等于验证"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/dobotaiops",
|
||
"test": "TestMirrorSourceManifestDetectsUpdatesWithoutVolatileTimes",
|
||
"reason": "仅显式一次性隔离PG验证本地副本/持久同步或专门只读源夹具;默认CI不连接共享与生产库,另行实际执行隔离验收"
|
||
},
|
||
{
|
||
"package": "knowledge-governance/internal/qawemail",
|
||
"test": "TestScheduledSendRequiresConfirmationAndSendsExactlyOnce",
|
||
"reason": "需要一个一次性 PostgreSQL 与测试主密钥(KG_WEEKLY_MAIL_TEST_DSN/KG_WEEKLY_MAIL_TEST_KEY),CI 不提供;本批已在隔离库真实跑通并通过"
|
||
}
|
||
]
|
||
}
|