feature!: Trigger changed Triggers, allowing multiple actions (#515)
* feature!: Trigger changed Triggers, allowing multiple actions * bugfix: Warning message on trigger loops, prevented NPE * cicd: Fix cyclo complexity with triggers
This commit is contained in:
parent
2cf538bab1
commit
2fc7c23416
|
|
@ -21,7 +21,7 @@ type Action struct {
|
||||||
ExecOnFileCreatedInDir []string
|
ExecOnFileCreatedInDir []string
|
||||||
ExecOnFileChangedInDir []string
|
ExecOnFileChangedInDir []string
|
||||||
ExecOnCalendarFile string
|
ExecOnCalendarFile string
|
||||||
Trigger string
|
Triggers []string
|
||||||
MaxConcurrent int
|
MaxConcurrent int
|
||||||
MaxRate []RateSpec
|
MaxRate []RateSpec
|
||||||
Arguments []ActionArgument
|
Arguments []ActionArgument
|
||||||
|
|
|
||||||
|
|
@ -580,9 +580,23 @@ func stepExecAfter(req *ExecutionRequest) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func stepTrigger(req *ExecutionRequest) bool {
|
func stepTrigger(req *ExecutionRequest) bool {
|
||||||
if req.Action.Trigger != "" {
|
if req.Action.Triggers == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(req.Tags) > 0 && req.Tags[0] == "trigger" {
|
||||||
|
log.Warnf("Trigger action is triggering another trigger action. This is allowed, but be careful not to create trigger loops.")
|
||||||
|
}
|
||||||
|
|
||||||
|
triggerLoop(req)
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func triggerLoop(req *ExecutionRequest) {
|
||||||
|
for _, triggerReq := range req.Action.Triggers {
|
||||||
trigger := &ExecutionRequest{
|
trigger := &ExecutionRequest{
|
||||||
ActionTitle: req.Action.Trigger,
|
ActionTitle: triggerReq,
|
||||||
TrackingID: uuid.NewString(),
|
TrackingID: uuid.NewString(),
|
||||||
Tags: []string{"trigger"},
|
Tags: []string{"trigger"},
|
||||||
AuthenticatedUser: req.AuthenticatedUser,
|
AuthenticatedUser: req.AuthenticatedUser,
|
||||||
|
|
@ -591,8 +605,6 @@ func stepTrigger(req *ExecutionRequest) bool {
|
||||||
|
|
||||||
req.executor.ExecRequest(trigger)
|
req.executor.ExecRequest(trigger)
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func stepSaveLog(req *ExecutionRequest) bool {
|
func stepSaveLog(req *ExecutionRequest) bool {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue