#cargo #yaml #template #config-file #generate #ci #clippy

app cargo-template-ci

从模板和Cargo配置中生成CI配置

8个版本

0.2.0 2019年7月27日
0.1.2 2019年1月8日
0.0.4 2018年10月23日

#486Cargo插件

每月 26 次下载

MIT 许可证

27KB
586

cargo template-ci - 自动生成快速的travis.yml

在我所有的Rust项目中,我都使用travis提供持续集成服务,以验证一切是否正确。然而,Rust的命令行工具已经改变了很多(clippy仍然在变化!),所以我必须调整每个.travis.yml中的调用。这不是很有趣!

所以这是一个小工具,它会根据几个标志生成一个.travis.yml文件,包含很多不错的东西

  • 它使用构建矩阵,以确保所有构建都很快。
  • 允许您选择除了测试之外还想要运行哪些构建类型:默认情况下,它会运行clippy并检查rustfmt的合规性。您还可以激活基准测试。
  • 允许自定义要运行的操作系统和要测试的版本。

运行

安装后,您可以在Rust项目中运行此工具:cargo template-ci。它将覆盖项目现有的.travis.yml,所以请确保它做得很好!

配置

默认情况下,配置如下

  • stablebetanightly上运行测试。
  • stable上运行rustfmt。
  • nightly上运行clippy,但允许失败。
  • 不运行基准测试(但如果启用,则将在nightly上运行它们)。

配置源

您可以通过编辑项目的Cargo.toml中的包元数据来配置生成的配置文件:所有内容都位于密钥package.metadata.template_ci下。此项目有一个示例,它使clippy失败成为致命的

如果你的项目使用Cargo工作空间,则无法将包元数据添加到顶层工作空间配置文件中。因此,你也可以将template-ci配置放入仓库根目录的文件中

  • .template-ci.toml
  • template-ci.toml,如果不行的话
  • package.metadata.template_ciCargo.toml

不执行配置值合并:匹配的第一个配置源会导致忽略所有其他文件。

配置参考

以下是可以配置的键的列表

  • package.metadata.template_ci.os:运行时的操作系统。默认为linux
  • package.metadata.template_ci.dist:运行时的操作系统发行版。默认为xenial(Ubuntu 16.04)
  • package.metadata.template_ci.versions:在构建矩阵上运行rust的版本,默认为["stable", "beta", "nightly"]

有额外的矩阵构建设置

  • package.metadata.template_ci.rustfmt:运行额外的矩阵构建以检查rustfmt有效性的设置

    • run:是否运行构建。默认:true
    • version:在哪个版本上运行。默认:stable
    • allow_failure:非零退出状态是否应中断构建。默认:false
  • package.metadata.template_ci.clippy:为clippy代码检查器提供的额外矩阵构建。

    • runtrue
    • versionnightly
    • allow_failuretrue
  • package.metadata.template_ci.bench:运行cargo bench的额外矩阵构建。

    • runfalse
    • versionnightly
    • allow_failurefalse

依赖

~6–16MB
~205K SLoC