Files
nodeagent/.github/workflows/rust.yml
T
jkooe d065242413 docs/ci: README 数字校正 + checkout 升 v5
- README:统计口径已过期(43 能力 · **32** MCP 工具 · **114** 单测 · **26** E2E),
  校正为实测值:43 能力 · 38 MCP 工具 · 215 单测 · 30 E2E · 11 Rust 单测。
  另补「桌面控制台」小节(架构图、页面表、构建命令、平台门控说明)与构建步骤说明
  —— 新组件入库后不同步 README,读者会以为仓库里没有它。
- CI:actions/checkout@v4 → v5,消除 runner 上的 Node.js 20 弃用告警。
  仅升被标记的这一个;setup-node / pnpm-action 未被标记,不做未验证的连带升级。
2026-10-07 10:18:52 +08:00

55 lines
2.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Rust Client
# crates/nodeagent-client 是桌面控制台的协议客户端(Tauri 壳经 Cargo path 依赖它)。
# 它是纯 Rust、无平台相关代码,故单开一个 Linux 快车道:
# 比 Windows 那条 E2E 长流程反馈快得多,失败归属也一目了然。
#
# ⚠️ 本工作流与仓库其余部分的铁律不同:**不涉及** .ps1/.cmd 编码,无需 BOM 守卫。
on:
push:
branches: [main]
paths:
- 'crates/**'
- 'packages/protocol/**'
- '.github/workflows/rust.yml'
pull_request:
paths:
- 'crates/**'
- 'packages/protocol/**'
- '.github/workflows/rust.yml'
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
test:
name: Rust 客户端单测 + E2E
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v5
# 版本**锁死**而不跟 stable 漂 —— 否则「本地全绿」与「CI 绿」会因为 lint 集合随
# 工具链变化而分叉(本仓库已因同类原因吃过 8 轮 Windows CI 的苦头)。
# 当前值与 crates/ 开发环境一致:rustc/cargo 1.98.1、clippy 0.1.98。
# 升级时两边同改,升完先本地复跑 `cargo clippy ... -- -D warnings`。
- name: 安装 Rust 工具链(1.98.1,含 clippy)
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.98.1
components: clippy
- name: 缓存 cargo 构建产物
uses: Swatinem/rust-cache@v2
with:
workspaces: crates
# clippy 单列为一步:它拦的是「能编译但不该这么写」,与测试失败是两类问题。
# -D warnings 让告警即失败 —— 该 crate 的既定标准是**零告警**。
- name: Clippy(告警即失败)
run: cargo clippy --manifest-path crates/nodeagent-client/Cargo.toml --all-targets -- -D warnings
- name: 单测 + E2E
run: cargo test --manifest-path crates/nodeagent-client/Cargo.toml