ci: plugin-tests 不再重复跑 tests/unit(#2492 后已冗余) - #2513
Conversation
#2492 加的 unit-tests.yml 在每个 PR 上无 paths 过滤地跑 `pytest tests/unit -q` 全量,而 plugin-tests.yml 仍在 paths 过滤器 ×2 + 一个 "Run repository contract tests" step 里点名同一批 11 个 tests/unit 文件——全部重复。 - 删掉 "Run repository contract tests" step(11 个文件,全在 tests/unit/ 下, 已被 unit-tests.yml 覆盖) - paths 收回 plugin 自身范围:plugin/**、workflow 自身、pyproject.toml、uv.lock。 移除的 tests/unit/*(11 条)、card_drop_router / community_oauth / system_router / card_forge_facts / card_cache / facts_sync / forge_credit_ledger / forge_story_generator 这批主程序路径,以及 static/avatar/avatar-ui-buttons/** 与 specs/launcher.spec,都只为触发那批 被点名的 tests/unit 而存在(已确认 plugin/tests 本身不引用后两者) - 更新顶部注释:它自称 "First pytest gate in CI",#2492 之后不再准确 同时删掉 tests/unit/test_neko_warthunder_review_regressions.py 里的 test_warthunder_review_regressions_are_in_plugin_ci——它只断言 `workflow.count("tests/unit/test_neko_warthunder_review_regressions.py") == 3`, 唯一作用是把「我必须留在 plugin-tests.yml 里」这件事自锁住。tests/unit 全量进 CI 后这个前提已不存在,同文件其余 warthunder 回归测试保留、改由 unit-tests.yml 跑。 验证:yaml.safe_load 通过;ruff 通过;原本被点名的 11 个文件单独跑 188 passed;uv run pytest tests/unit -q → 6789 passed, 26 skipped, 0 failed (比改动前少 1 项 = 删掉的那条自锁断言)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 17 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Comment |
Greptile Summary本 PR 删除
Confidence Score: 5/5本 PR 看起来可以安全合并,未发现测试覆盖缺口或其他可执行问题喵。 无路径过滤的单元测试工作流仍在相同 Windows 与 Python 环境中运行完整的 tests/unit 测试集,而 plugin/tests 不依赖被移除的触发路径喵。
|
| Filename | Overview |
|---|---|
| .github/workflows/plugin-tests.yml | 删除重复的单元测试步骤及无关触发路径后,插件测试工作流仍完整覆盖其自身测试范围喵。 |
| tests/unit/test_neko_warthunder_review_regressions.py | 删除已失效的工作流自锁断言,不影响该文件保留的产品回归测试喵。 |
Reviews (1): Last reviewed commit: "ci: plugin-tests 不再重复跑 tests/unit(#2492 ..." | Re-trigger Greptile
#1542 收尾第 2 批。纯 CI 去重,不改任何产品代码。
起因
#2492 加的
unit-tests.yml在每个 PR 上无 paths 过滤地跑pytest tests/unit -q全量。而plugin-tests.yml仍在两处 paths 过滤器 + 一个Run repository contract testsstep 里点名同一批 11 个tests/unit/*文件 —— 全部是重复执行。其中 9 个(card_cache_puller、card_forge_story_generator、card_drop_session_facts、card_drop_steam_pkce、community_oauth、facts_sync_worker、forge_credit_ledger、neko_warthunder_review_regressions、system_status_router)是 #1542 加进去的;另外 2 个(avatar_return_button_idle_tiers_static、plugin_sdk_packaging)是 #2492 之前就在的遗留。
改动
删掉
Run repository contract testsstep —— 11 个文件全在tests/unit/下,已被unit-tests.yml覆盖。paths 收回 plugin 自身范围,只留
plugin/**、workflow 自身、pyproject.toml、uv.lock。移除的是那 11 条tests/unit/*、为它们服务的主程序路径(card_drop_router.py/community_oauth.py/system_router/**/card_forge_facts.py/card_cache/**/facts_sync/**/forge_credit_ledger.py/forge_story_generator.py),以及static/avatar/avatar-ui-buttons/**和specs/launcher.spec。后两者已确认plugin/tests自身不引用(grep 零命中),它们纯粹是为触发被点名的那两个 tests/unit 文件而加的。更新顶部注释 —— 原文自称 "First pytest gate in CI",fix(tests): 分诊并修完 tests/unit 的 18 条存量失败,并把该目录挂进 CI #2492 之后不再准确;改为说明
tests/unit由unit-tests.yml全量覆盖,本 workflow 只管plugin/tests。删掉一条自锁测试 ——
test_neko_warthunder_review_regressions.py::test_warthunder_review_regressions_are_in_plugin_ci只做一件事:它把「我必须留在 plugin-tests.yml 里」自锁住了,摘掉 workflow 那几行它就红。
tests/unit全量进 CI 后这个前提不存在了。同文件其余 warthunder 回归测试全部保留,改由unit-tests.yml跑。回归报告 / Regression Report
plugin-tests.yml去掉与unit-tests.yml重复的tests/unit执行与触发路径;删除一条自锁的元测试。无产品代码改动。plugin-tests.yml的 paths 被撑到覆盖大片主程序路径,与它自述的 "Scoped to the plugin subsystem on purpose" 相悖。unit-tests.yml每 PR 全量执行(两个 workflow 同为windows-latest,平台覆盖也无变化)。差别只是不再跑第二遍,以及改动主程序文件时不再触发plugin-tests(它只跑plugin/tests,与那些文件无关)。unit-tests.yml被缩回 paths 过滤或点名模式,这批测试会失去覆盖 —— 届时需同步恢复;(b) 改specs/launcher.spec不再触发plugin-tests,但test_plugin_sdk_packaging.py仍由unit-tests.yml每 PR 跑到,覆盖未丢。yaml.safe_load解析通过(jobs / steps 结构完好);ruff通过;原本被点名的 11 个文件单独跑 → 188 passed;uv run pytest tests/unit -q→ 6789 passed, 26 skipped, 0 failed(比改动前少 1 项,正是删掉的那条自锁断言)。不拆分理由 / Why Not Split
workflow 的清理和那条自锁测试的删除必须同一个 PR:只删 workflow 行会让该测试立刻变红,只删测试则清理没做。两者加起来 2 个文件、-69/+7。