From 91a0bbd403098c756834c077d4d0caa2ee78c013 Mon Sep 17 00:00:00 2001 From: Ynah537 Date: Thu, 26 Mar 2026 15:24:33 +0800 Subject: [PATCH 1/2] fix: skip in progress scenario being process when cancelled --- scenario.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scenario.go b/scenario.go index 9a42682..3f74afe 100644 --- a/scenario.go +++ b/scenario.go @@ -196,6 +196,11 @@ func isAllowed(s *Scenario) bool { func doScenario(in *doScenarioInput) error { for _, f := range in.ScenarioFiles { + if in.app != nil && in.RunID != "" && in.app.isRunCancelled(in.RunID) { + log.Printf("doScenario: run_id=%s is cancelled, stopping at %s", in.RunID, f) + return nil + } + yml, err := os.ReadFile(f) if err != nil { continue @@ -232,6 +237,11 @@ func doScenario(in *doScenarioInput) error { } for i, run := range s.Run { + if in.app != nil && in.RunID != "" && in.app.isRunCancelled(in.RunID) { + log.Printf("doScenario: run_id=%s cancelled mid-run at step %d of %s", in.RunID, i, f) + return nil + } + basef := filepath.Base(f) prefix := filepath.Join(os.TempDir(), fmt.Sprintf("%v_run%d", basef, i)) @@ -343,7 +353,6 @@ func doScenario(in *doScenarioInput) error { if in.ReportSlack != "" { if len(s.errs) > 0 { - // Send failure notification to slack payload := SlackMessage{ Attachments: []SlackAttachment{ { @@ -361,7 +370,6 @@ func doScenario(in *doScenarioInput) error { log.Printf("Notify (slack) failed: %v", err) } } else { - // Send success notification to slack payload := SlackMessage{ Attachments: []SlackAttachment{ { From 46aa60bd7588c09da989a6fd054b8efca963d5d6 Mon Sep 17 00:00:00 2001 From: Ynah537 Date: Thu, 26 Mar 2026 15:30:02 +0800 Subject: [PATCH 2/2] fix: comment --- scenario.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scenario.go b/scenario.go index 3f74afe..03badcf 100644 --- a/scenario.go +++ b/scenario.go @@ -353,6 +353,7 @@ func doScenario(in *doScenarioInput) error { if in.ReportSlack != "" { if len(s.errs) > 0 { + // Send failure notification to slack payload := SlackMessage{ Attachments: []SlackAttachment{ { @@ -370,6 +371,7 @@ func doScenario(in *doScenarioInput) error { log.Printf("Notify (slack) failed: %v", err) } } else { + // Send success notification to slack payload := SlackMessage{ Attachments: []SlackAttachment{ {