#ci #tool

app rust-tools

Rust工具

8个版本 (4个稳定版)

1.0.3 2022年12月18日
1.0.2 2022年7月22日
1.0.1 2022年5月26日
0.3.1 2020年12月28日
0.1.0 2020年12月22日

#100配置 中排名

每月37次 下载

Apache-2.0

23KB
615

CI crates.io Documentation License Rustc

一个旨在辅助开发和CI工作流程的CLI。该项目可以被视为Rust编程语言相关工具的高级“协调器”或“包装器”。

配置

应用程序将主要与定义工具行为方式的配置(规则集)交互,有三个不同的来源

内置配置

此仓库中找到的预定义规则集。欢迎提交PR创建新的配置。

rust-tools --template you-rust SOME_COMMAND
YouRust(
    Params {
        clippy_flags: [
            "-Dclippy::restriction",
            "-Dwarnings",
            "-Aclippy::implicit_return",
            "-Aclippy::missing_docs_in_private_items",
        ],
        rust_flags: [
            "-Dbad_style",
            "-Dfuture_incompatible",
            "-Dmissing_debug_implementations",
            "-Dmissing_docs",
            "-Dnonstandard_style",
            "-Drust_2018_compatibility",
            "-Drust_2018_idioms",
            "-Dtrivial_casts",
            "-Dunused_lifetimes",
            "-Dunused_qualifications",
            "-Dwarnings",
        ],
        rustfmt_flags: [
            "edition=\"2018",
            "tab_spaces=2",
            "use_field_init_shorthand=true",
            "use_small_heuristics=\"Max",
        ],
        toolchain: "",
    },
)

配置文件

可以使用内置配置作为模板以满足特定需求。允许添加或删除标志。

rust-tools --file SOME_CONFIGURATION_FILE.cfg SOME_COMMAND
add_clipy_flags -Aclippy::type_complexity
rm_clippy_flags -Aclippy::implicit_return,-Aclippy::missing_docs_in_private_items
template you-rust
toolchain nightly-2020-11-11

CLI参数

根据选定的目标,可以定义或扩展某些规则;

rust-tools rust-flags -Dbad_style,-Dunused_qualifications

最终配置将遵循以下顺序:内置 -> 文件 -> CLI,即内置参数会被文件参数覆盖,文件参数会被CLI参数覆盖。

脚本示例

#!/usr/bin/env bash

set -euxo pipefail

cargo install rust-tools

export RUSTFLAGS="$(rust-tools rust-flags)"

rust-tools clippy

rust-tools check-generic SOME_CRATE
rust-tools test-with-features SOME_CRATE FIRST_FEATURE,SECOND_FEATURE

支持的目标

  • clippy标志
  • rust标志
  • rust-toolchain文件
  • rustfmt文件和标志

无运行时依赖