6个版本
0.1.7 | 2021年2月5日 |
---|---|
0.1.6 | 2021年2月5日 |
#696 in 过程宏
7KB
68 行
fail_on_ci
你是否曾经编写过临时测试代码,忘记删除它并将其推送到生产环境?
此crate为你提供了一个宏,当检测到已知的CI服务器时,它会失败。只需将你的测试代码包裹在其中,它就只会本地编译。
工作原理
大多数CI服务器定义了特定的环境变量,可以用来检测进程是否在CI服务器上运行。
以下是应该被检测到的CI服务器列表。
或者,你可以将环境变量 FAIL_ON_CI
设置为 true
。这可以用于不支持的服务器。
检测到的CI服务器
- AppVeyor
- AwsCodeBuild
- AzurePipelines
- Bamboo
- BitbucketPipelines
- Buddy
- Codeship
- CircleCI
- Drone
- Github Actions
- Gitlab CI
- Jenkins
- TeamCity
- Travis
- Wercker
示例
用于表达式
use fail_on_ci::*;
// Struct used for local test
#[derive(FailOnCi)]
struct TestStruct {}
// alias for FailOnCi
#[derive(TempStruct)]
struct TestStruct2 {}
#[temp_function]
fn test_function() -> bool {
true
}
fn main() {
// insert arbitrary code
fail_on_ci!{
println!("This doesn't compile on CI!");
}
// alias for fail_on_ci
temp_code!{
println!("This doesn't compile on CI!");
}
// returns true
if temp_true!() {
println!("Hello, world!");
}
// returns false
if temp_false!() {
println!("Hello, world!");
}
}