#github-actions #macro #gha

gha_main

Rust编写GitHub Actions的便捷宏

3个版本

0.0.5 2023年5月28日
0.0.2 2023年5月26日
0.0.1 2023年5月25日

#1359 in Rust模式

Apache-2.0 OR MIT

14KB
83

gha-main

在Rust中编写GitHub Actions!

这个crate提供两个便捷宏,以简化在Rust中编写GitHub Actions。

如何使用

  1. 使用main()函数上的#[gha_main]注释。
  2. 添加返回类型GitHubActionResult
  3. 使用?运算符传递错误。
  4. 使用gha_output!()宏将输出(任何实现Display的类型)返回给action runner,以便它们可以在后续工作流程步骤或其他操作中使用。

示例使用

use std::env;
use gha_main::{gha_main, gha_output, GitHubActionResult};

#[gha_main]
fn main() -> GitHubActionResult {
    let args: Vec<String> = env::args().collect();
    let input = &args[1];
    let parsed_u32 = input.parse::<u32>()?;
    gha_output!(parsed_u32);
    Ok(())
}

包装在gha_output!()中的值将被以与Rust变量名相同的输出名返回给runner。在上面的示例中,如果操作以输入"5"调用,则parsed_u32输出将设置为5

通过?运算符传递的错误将作为error输出返回给runner。错误值使用anyhow::ErrorDisplay实现进行格式化。

示例操作

/example-actions文件夹包含几个示例,演示如何在Rust中编写GitHub Actions。

许可证:Apache-2.0 OR MIT

依赖项

~0.7–1.2MB
~25K SLoC