Skip to content

Commit 7839fd7

Browse files
committed
feat(module-if): Add support for conditional modules
1 parent 3c40da8 commit 7839fd7

8 files changed

Lines changed: 599 additions & 1 deletion

File tree

Cargo.lock

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

recipe/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ blue-build-utils = { version = "=0.9.27", path = "../utils" }
1313

1414
cached.workspace = true
1515
colored.workspace = true
16+
comlexr.workspace = true
1617
log.workspace = true
1718
miette.workspace = true
1819
oci-client.workspace = true
@@ -23,5 +24,9 @@ serde_yaml.workspace = true
2324
serde_json.workspace = true
2425
bon.workspace = true
2526

27+
[dev-dependencies]
28+
rstest.workspace = true
29+
pretty_assertions.workspace = true
30+
2631
[lints]
2732
workspace = true

recipe/src/module.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ use serde_yaml::Value;
1313

1414
use crate::{AkmodsInfo, ModuleExt, base_recipe_path};
1515

16+
mod module_if;
1617
mod type_ver;
1718

19+
pub use module_if::*;
1820
pub use type_ver::*;
1921

2022
#[derive(Serialize, Deserialize, Debug, Clone, Builder)]
@@ -39,6 +41,10 @@ pub struct ModuleRequiredFields {
3941
#[serde(skip_serializing_if = "Vec::is_empty", default)]
4042
pub secrets: Vec<Secret>,
4143

44+
#[serde(rename = "if")]
45+
#[serde(skip_serializing_if = "Option::is_none")]
46+
pub if_check: Option<ModuleIf>,
47+
4248
#[serde(flatten)]
4349
#[builder(default, into)]
4450
pub config: IndexMap<String, Value>,

0 commit comments

Comments
 (0)