37个稳定版本
2.4.8 | 2024年4月23日 |
---|---|
2.0.8 | 2024年3月30日 |
1.4.8 | 2024年3月7日 |
0.8.60 | 2022年10月17日 |
0.7.22 |
|
#425 in 构建工具
用于 4 crate
150KB
1.5K SLoC
cargo_auto_lib
为Rust项目工作流编写的Rust语言自动化任务
版本: 2.4.8 日期: 2024-04-23 作者: Bestia.dev 仓库: GitHub
cargo_auto_lib 是 automation_tasks_rs 项目的部分
标签: #维护 #即用型 #rustlang #自动化 #工作流
我在GitHub上的项目更像是一个教程而不是一个成品: bestia-dev教程.
我推荐使用 CRUSTDE - 容器化Rust开发环境 在Linux上编写Rust项目,与您的系统隔离。
试试看
首先,安装Rust项目自动化任务的工具
cargo install cargo-auto
# Generate a new Rust CLI project:
cargo auto new_cli hello_world
# Open the `hello_world` project in VSCode:
code hello_world
# Open the generated directory `automation_tasks_rs` as an independent rust project in VSCode.
code hello_world/automation_tasks_rs
现在我们可以分析自动化代码。在我们的库中,Cargo.toml
已经有这个依赖项
cargo_auto_lib="2.0.2"
请查看automation_tasks_rs/main.rs
中的代码。cl::
命名空间是cargo_auto_lib
的别名。
示例
/// cargo build --release
fn task_release() {
let cargo_toml = CargoToml::read();
cl::auto_version_increment_semver_or_date();
cl::auto_cargo_toml_to_md();
cl::auto_lines_of_code("");
cl::run_shell_command("cargo fmt");
cl::run_shell_command("cargo build --release");
println!(
r#"
{YELLOW}After `cargo auto release`, run the compiled binary, examples and/or tests{RESET}
{GREEN}./target/release/{package_name} arg_1{RESET}
{YELLOW}if ok then{RESET}
{GREEN}cargo auto doc{RESET}
"#,
package_name = cargo_toml.package_name(),
);
}
您可以看到这个函数将增加Cargo.toml
中的版本。
然后它将一些数据从Cargo.toml
复制到README.md(标题、描述、版本、作者等)。
它将统计代码行数并在README.md中创建徽章。
然后是传统的Rust部分:cargo fmt和cargo build --release。
最后,它将在屏幕上显示如何继续开发的说明。
运行(在您的main rust项目中)
cargo auto release
现在打开README.md,您将看到自动化任务从其他地方复制的数据。因此,您只需在一个地方更改这些数据,即自动化任务会将其复制到需要的地方。
Panic!() 和 unwrap()
我希望任务在任何错误发生时立即退出。因此,我大量使用unwrap()和panic!()。
故意为之。因为我写这个文档之前还没有学习Rust的错误处理。
开发细节
在单独的md文件中阅读开发细节
DEVELOPMENT.md
发布变更日志
在单独的md文件中阅读发布变更日志
RELEASES.md
待办事项
- 移除对工作空间的现有支持。工作空间一团糟
- 修改为每个成员都必须有自己的自动化
- 工作空间自动化随后调用成员的自动化
- 最好是有一个非工作空间的由多个项目组成
- 使用单一工作流程自动化一起开发
开源且免费如啤酒
我的开源项目免费如啤酒(MIT许可)。
我热爱编程。
但我也需要喝酒。如果你觉得我的项目和教程有帮助,请通过向我捐赠来买杯啤酒 PayPal。
你知道你当地酒吧啤酒的价格吗?;-)
这样我就可以为你的健康喝杯免费啤酒了 :-)
Na zdravje! Alla salute! Prost! Nazdravlje! 🍻
//bestia.dev
//github.com/bestia-dev
//bestiadev.substack.com
//youtube.com/@bestia-dev-tutorials
依赖关系
~17–30MB
~553K SLoC