Expand description
✅ Get inputs, set outputs, and other basic operations for GitHub Actions
|
👀 Looking for more GitHub Actions crates? Check out the actions-toolkit.rs project.
§Installation
cargo add actions-core2
⚠️ Use use actions_core
in your Rust code. The package name differs from the crate name.
§Usage
use actions_core as core;
use std::error::Error;
fn main() {
let result = || -> Result<(), Box<dyn Error>> {
let name = core::get_input_with_options("name", core::InputOptions {
required: true,
..Default::default()
})?;
let favorite_color = core::get_input("favorite-color")?;
core::info!("Hello {name}!");
core::set_output("message", "Wow! Rust is awesome!");
Ok(())
}();
if let Err(error) = result {
core::set_failed!("{error}");
}
}
🤔 But how do I actually use the generated executable in my action.yml
? Check out configure-executable-action!
§Development
This project is part of the actions-toolkit.rs project.
🆘 I’m not a very proficient Rust programmer. If you see something that could be better, please tell me! ❤️ You can open an Issue, Pull Request, or even just comment on a commit. You’ll probably be granted write access. 😉
Todo list:
- Replicate the public API surface from @actions/core. Falsey string behaviour included.
-
Decide on
get_input("name", Some(...))
vsget_input_with_options("name", ...)
vsget_input!("name", ...)
. Need to find existing Rust projects to see the convention. -
Figure out when to use
AsRef<str>
,&str
,String
,Cow<str>
, etc. for parameters and return types. I need to do some recon on existing Rust projects. - Publish this crate to crates.io. That also entails setting up GitHub Actions to publish the crate on each appropriate monorepo release.
- Copy this content to the crate README.
- Add examples. At least two.
- Add documentation to the public API. Not just “get_input() gets the input”.
Modules§
Structs§
Enums§
- Exit
Code Deprecated - Summary
Table RowItem
Constants§
Functions§
- add_
path - debug
- debug_
with_ properties - end_
group - error
- error_
with_ properties - export_
variable - get_
boolean_ input - get_
boolean_ input_ with_ options - get_
id_ token - get_
id_ token_ with_ audience - get_
input - get_
input_ with_ options - get_
multiline_ input - get_
multiline_ input_ with_ options - get_
state - group
- info
- is_
debug - notice
- notice_
with_ properties - save_
state - set_
command_ echo - set_
failed - set_
output - set_
secret - start_
group - to_
platform_ path - to_
posix_ path - to_
win32_ path - warning
- warning_
with_ properties