用途:为 Motoko 仓库补充或更新面向 PR 的 GitHub Actions CI,自动完成测试、基准测试、格式检查与构建。
主要能力:用 mops 运行 test 与 bench;用 Prettier + prettier-plugin-motoko 做格式校验;按项目类型用 icp-cli 或 dfx 构建 canister/示例,可比较 .did 接口。建议拆成 test 与 fmt 两个并行 job。
必要用法:先读 mops.toml 判断是包([package])还是 canister 项目([canister] 或 dfx.json)。有 test/ 与 *.test.mo 才加 mops test;有 bench/ 与 *.bench.mo 才加 mops bench。Node 至少 v22。CI 中用 caffeinelabs/setup-mops@v1 安装 mops,用 mops toolchain bin moc 确保 moc。有基准测试时必须在 [toolchain] 固定 pocket-ic,用 mops toolchain use pocket-ic <version>,并在 CI 执行 mops toolchain bin pocket-ic;mops CLI v3.0.0 起已移除 dfx-replica 支持,PocketIC 是唯一 bench 运行时,无需单独启动步骤。有 [optimize] 时同样需固定 wasm-opt,并执行 mops toolchain bin wasm-opt。不要同时安装 dfx 与 icp-cli;库包无需安装二者。
适用场景:Motoko 库包或 canister 项目的持续集成。
限制:不要改动 mops.toml 的 files 字段,仅提示风险;无测试或无基准时就省略对应步骤;缺失事实如具体价格、平台支持暂未提供。