已开启
ci: add PR quality gate workflow #1092
luojiyin创建于 16 天前
ci: add PR quality gate workflow #1092
已开启
合并受阻
atomgit-bot
16 天前 评论:
16 天前 评论:
变更摘要
该 PR 新增 .github/workflows/ci.yml 工作流,为仓库引入 PR 质量门禁:在所有 pull request 以及 push 到 main 分支时自动触发,运行 Rust 与 WebUI 的格式、静态检查、测试和构建检查。此前 .github/workflows/build.yml 仅在 release tag 推送或手动触发时执行编译与产物上传,普通 push/PR 没有任何质量检查,本变更将质量检查与发布构建分离,使代码问题能在合并前暴露。
主要改动
- 新增
ci.yml工作流并配置触发与并发控制:设置on.pull_request与on.push.branches: [main]触发条件,并通过concurrency.group: ci-${{ github.ref }}与cancel-in-progress: true实现同一分支重复推送时自动取消旧运行。 - 新增
fmtjob:使用dtolnay/rust-toolchain@stable(含rustfmt组件)执行cargo fmt --all -- --check,校验 Rust 代码格式。 - 新增
clippy与testjob:分别执行cargo clippy --workspace --all-targets -- -D warnings和cargo test --workspace --all-targets,两者均使用Swatinem/rust-cache@v2加速编译缓存;未使用--all-features以避免 closed-sourcecodingplan-cryptocrate 导致编译失败。 - 新增
webuijob:设置working-directory: webui,通过actions/setup-node@v4使用 Node 22 并启用基于webui/package-lock.json的 npm 缓存,依次执行npm ci、npm test、npm run typecheck、npm run build。


不准确?
atomgit-bot
16 天前 评论:
16 天前 评论:
atomgit-bot
16 天前 评论:
16 天前 评论:
atomgit-bot
16 天前 评论:
16 天前 评论:
atomgit-bot
16 天前 评论:
16 天前 评论:
变更摘要
本 PR 新增 .github/workflows/ci.yml 作为 PR 质量门禁工作流,在所有 pull request 以及 push 到 main 分支时自动触发,弥补了现有 build.yml(仅在 release tag 或手动触发时运行)缺少日常质量检查的空白。工作流通过 concurrency 组在重复推送时自动取消旧运行,并包含 Rust(fmt/clippy/test)、WebUI(webui)和 JetBrains 扩展(jetbrains)共 5 个并行 job,其中 clippy 通过 --exclude atomcode-codingplan-crypto 避开闭源 crate 以避免编译失败,与现有发布构建完全分离、各司其职。
主要改动
- 新增 CI 工作流及触发配置:新建
.github/workflows/ci.yml,通过on.pull_request与on.push.branches: [main]定义触发条件,并设置permissions: contents: read最小化权限。 - 并发取消机制:使用
concurrency.group: ci-${{ github.ref }}与cancel-in-progress: true,同一分支重复推送时自动取消旧运行。 - Rust 质量检查 job:
rust-fmt通过git diff仅对变更的*.rs文件执行rustfmt --check;rust-clippy执行cargo clippy --workspace --exclude atomcode-codingplan-crypto --all-targets;rust-test执行cargo test --workspace --all-targets,均配合Swatinem/rust-cache@v2缓存加速。 - WebUI 检查 job:
webui在webui目录下使用 Node 22 依次执行npm ci、npm test、npm run typecheck、npm run build,并启用 npm 缓存。 - JetBrains 扩展检查 job:
jetbrains在extensions/jetbrains目录下使用 Temurin Java 21 与 Gradle 缓存执行./gradlew test --no-daemon(30 分钟超时限制)。


不准确?
atomgit-bot
16 天前 评论:
16 天前 评论:
背景
当前
.github/workflows/build.yml仅在发布 tag 推送或手动触发时运行,只执行编译和上传产物。普通 push 和 pull request 没有任何质量检查,代码问题直到发布构建才暴露。
修改内容
新增
.github/workflows/ci.yml,在以下场景自动触发:main分支包含 4 个并行 job:
fmtcargo fmt --all -- --checkclippycargo clippy --workspace --all-targets -- -D warningstestcargo test --workspace --all-targetswebuinpm ci+npm test+npm run typecheck+npm run build设计要点
concurrency组,同一分支重复推送时自动取消旧运行Swatinem/rust-cache@v2加速编译actions/setup-node@v4+ npm cache,Node 版本 22--all-features,避免 closed-sourcecodingplan-cryptocrate 导致编译失败build.yml(仅 release tag 触发)完全分离,各司其职验证
YAML 语法校验通过。推送后可在仓库 Actions 页面确认 workflow 被正确触发。