Skip to content

Commit 041f7b6

Browse files
committed
Allow independent inline workflow triggers
1 parent 9c3f971 commit 041f7b6

1 file changed

Lines changed: 45 additions & 1 deletion

File tree

src/config.rs

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,9 @@ fn execution_tree_overlap_sets(
624624
}
625625
}
626626
for trigger in &workflow.triggers {
627-
trigger_targets.insert(trigger.clone());
627+
if !used_inline {
628+
trigger_targets.insert(trigger.clone());
629+
}
628630
stack.push((trigger.clone(), used_inline));
629631
}
630632
}
@@ -987,6 +989,48 @@ mod tests {
987989
);
988990
}
989991

992+
#[test]
993+
fn validate_allows_inline_workflow_with_independent_triggers() {
994+
let mut config = base_config();
995+
config.workflow.insert(
996+
"c".into(),
997+
WorkflowSpec {
998+
steps: vec![WorkflowStep::NotifyReload],
999+
triggers: vec![],
1000+
},
1001+
);
1002+
config.workflow.insert(
1003+
"d".into(),
1004+
WorkflowSpec {
1005+
steps: vec![WorkflowStep::NotifyReload],
1006+
triggers: vec![],
1007+
},
1008+
);
1009+
config.workflow.insert(
1010+
"b".into(),
1011+
WorkflowSpec {
1012+
steps: vec![WorkflowStep::Log {
1013+
message: "b".into(),
1014+
style: LogStyle::Plain,
1015+
}],
1016+
triggers: vec!["d".into()],
1017+
},
1018+
);
1019+
config.workflow.insert(
1020+
"a".into(),
1021+
WorkflowSpec {
1022+
steps: vec![WorkflowStep::RunWorkflow {
1023+
workflow: "b".into(),
1024+
}],
1025+
triggers: vec!["c".into()],
1026+
},
1027+
);
1028+
1029+
config.workflow["a"]
1030+
.validate(&config, "a")
1031+
.expect("independent inline triggers should be allowed");
1032+
}
1033+
9901034
#[test]
9911035
fn output_config_defaults_to_inherited_output() {
9921036
let config: OutputConfig = toml::from_str("").expect("parse default output config");

0 commit comments

Comments
 (0)