@@ -180,12 +180,12 @@ type NodeBaseInterface interface {
180180// Base component for nodes that offer values from other nodes.
181181// The node that implements this component has outgoing connections.
182182type NodeBaseComponent struct {
183- Name string // Human readable name of the node
184- Label string // Label of the node shown in the graph editor
185- Id string // Unique identifier for the node
186- FullPath string // Full path of the node within the graph hierarchy
187- CacheId string // Unique identifier for the cache
188- NodeType string // Node type of the node (e.g. core/run@v1 or github.com/actions/checkout@v3)
183+ Name string // Human readable name of the node
184+ Label string // Label of the node shown in the graph editor
185+ Id string // Unique identifier for the node
186+ FullPath string // Full path of the node within the graph hierarchy
187+ CacheId string // Unique identifier for the cache
188+ NodeType string // Node type of the node (e.g. core/run@v1 or github.com/actions/checkout@v3)
189189 Graph * ActionGraph
190190 Parent NodeBaseInterface
191191 isExecutionNode bool
@@ -605,7 +605,13 @@ func NewGhActionNode(nodeType string, parent NodeBaseInterface, parentId string,
605605
606606 node , errs := factoryEntry .FactoryFn (nodeType , parent , parentId , nil , validate , opts )
607607 if len (errs ) > 0 {
608- return nil , errs
608+ if node == nil {
609+ return nil , errs
610+ }
611+ // Factory returned a valid node with warnings/errors (e.g. validation
612+ // proxy). Initialise the node and pass the errors through.
613+ utils .InitMapAndSliceInStructRecursively (reflect .ValueOf (node ))
614+ return node , errs
609615 }
610616
611617 utils .InitMapAndSliceInStructRecursively (reflect .ValueOf (node ))
0 commit comments