开始
安装Rust 工具链
有很多的方式可以在你的计算机上安装 Rust , 但是推荐使用 rustup
怎么安装rustup 可以看这个网址 : rustup.rs
编译目标
Rust 编译器的主要目的是你的Rust代码编译成 机器码, 以便于CPU 和你的操作系统理解并且执行
所以需要为每个不同的目标使用不同的rust编译器, 使其可以生成不同平台的可执行文件
发布版本
有两种发布版本
- beat 下一个正式版本的候选版本
- nightly 来自 rust仓库的master 分支, 因为每晚都会构建, 所以叫这个名字
如果测试你的软件是应该是 beat 版本, 是帮助Rust 语言发现bug 的途径
nightly 主要是让开发人员使用一些没有开发完成的功能,
我们需要什么工具链
安装rustup 之后 将 为你提供一个你宿主平台为目标的编译器。
但是有一些工具例如宏扩展可能会依赖 nightly 版本的编辑器。
可以使用下面的命令来安装nightly 编辑器
rustup toolchain install nightly --allow-downgrade
如果rustup 的一些组建在nightly 版本中存在损坏或者丢失的情况 --allow-downgrade 将会告诉rustup 去寻找并且安装 这些组建的nightly 的可用版本
如果想制定发布的版本我们可以使用
rustup toolchain install \ nightly-x86_64-unknown-linux-gnu \ --allow-downgrade
我们可以使用 rustup update 更新我们的工具链.
使用rustup toolchain list 可以看到已经看到已经安装的工具链在你的机器上
项目启动
rustc 就是 Rust 的编译器, 查看版本
rustc --version
当然不会有太多的时间使用rustc , 我们一般常用的构建工具是cargo 检查cargo 的版本
cargo --version
使用cargo来创建一个项目
cargo new project
所以我们有了一个新的文件夹 名为 zero2prod
project
Cargo.toml
.gitignore
.git
src
main.rs
并且这个是一个git 项目
CI 步骤
Test 测试
如果你的CI 流程 有一个单独的步骤, 那么应该是测试 测试是RUST 里非常重要的概念, 你可以使用 cargo 来运行你的单元测试
cargo test
cargo test 会在测试之前,编译项目, 所以你不需要运行cargo build , 虽然大多数会先运行carog build , 因为可以缓存依赖
代码覆盖率
虽然代码覆盖率作为左亮检查有几个缺点, 但是这是一种快速收集信息的方法
测试代码覆盖率的可以通过 cargo tarpaulin
可以先用cargo 安装,
cargo install cargo-tarpaulin
然后运行
cargo tarpaulin --ignore-tests
clippy 语法检查
rust 安装的组件包中包含, clippy 但是ci 的环境通常是最小话的配置, 通常不包含clppy
rustup component add clippy
可以直接在项目中运行
cargo clippy
如果在ci 过程中, 如果clippy 发出警告, 那么就linter 检查失败, 可以使用如下命令
cargo clippy -- -D warnings
当然静态分析并不是绝对正确的, 所以有时候可能会建议错误
你可以禁用警告 使用 #[allow(clippy:lint_name] 属性在被影响的代码块上,
或者对整个项目都禁用 在 clippy.toml 配置#![allow(clippy:lint_name]
格式化
rustfmt 是 Rust 官方的格式化工具 当然和其他的工具一样也是默认安装的
rustup component add rustfmt
你可以运行
cargo fmt
在CI 中, 可以添加以下命令来执行格式化
cargo fmt -- --check
如果发现格式不对的代码, 就会进行输出 也可以在项目中配置 rustfmt.toml 文件来, 配置格式化样式
安全漏洞
可以运行性来检查漏洞是否存在
cargo install cargo-audit
cargo audit
来扫描你的依赖