@@ -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