Files
endorphin-aster-vm/scripts/check.sh

17 lines
1.1 KiB
Bash

#!/bin/sh
# 项目完整检查入口,供开发者或 CI 调用;下方 Cargo 测试和 lint 会触发编译。
# 启用首个失败即退出和未定义变量报错,避免前置检查失败后继续报告后续成功。
set -eu
# 比较 ASDL 对应的已提交生成源码/契约是否过期;只检查,不写目标文件,内部会格式化 Rust 文本。
python3 scripts/generate_ast.py --check
# 运行生成器的纯 Python 回归场景,验证递归装箱、跨目标同步及非法 schema 拒绝。
python3 scripts/test_generate_ast.py
# 检查整个 Rust workspace 格式,不改文件;不运行 VM。
cargo fmt --all --check
# 单独检查 include 引入的两个 PEG 文件格式,补足普通 Cargo 源码格式检查的覆盖。
rustfmt --edition 2024 --check crates/frontend/src/lexer.peg crates/frontend/src/grammar.peg
# 编译并运行 workspace 测试,locked 要求使用已锁定依赖;这一步会产生构建产物。
cargo test --workspace --locked
# 对全部目标执行 Clippy,包含编译检查,并把所有警告作为错误拒绝。
cargo clippy --workspace --all-targets --locked -- -D warnings