Skip to main content

ambient_ci/action_impl/
setenv.rs

1#![allow(clippy::result_large_err)]
2
3use std::collections::HashMap;
4
5use serde::{Deserialize, Serialize};
6
7use crate::{
8    action::{ActionError, Context},
9    action_impl::ActionImpl,
10};
11
12/// Set environment variables for later actions.
13#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
14pub struct Setenv {
15    set: HashMap<String, String>,
16}
17
18impl ActionImpl for Setenv {
19    fn execute(&self, context: &mut Context) -> Result<(), ActionError> {
20        for (k, v) in self.set.iter() {
21            context.set_env(k, v);
22        }
23        Ok(())
24    }
25}