From 03933412bb2d94c82342b16b475c213332f142cb Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Fri, 18 Oct 2024 14:45:34 +0800 Subject: [PATCH] feat(cmd/joj3): run all commands concurrently in teapot (#66) Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/66 Co-authored-by: Boming Zhang Co-committed-by: Boming Zhang --- cmd/joj3/teapot/run.go | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/cmd/joj3/teapot/run.go b/cmd/joj3/teapot/run.go index 7c2a240..69f73b0 100644 --- a/cmd/joj3/teapot/run.go +++ b/cmd/joj3/teapot/run.go @@ -47,10 +47,10 @@ func Run(conf *conf.Conf) error { } var wg sync.WaitGroup var scoreboardErr, failedTableErr, issueErr error - wg.Add(2) - go func() { - defer wg.Done() - if !conf.Teapot.SkipScoreboard { + if !conf.Teapot.SkipScoreboard { + wg.Add(1) + go func() { + defer wg.Done() err := execCommand("joint-teapot", []string{ "joj3-scoreboard", envFilePath, conf.Stage.OutputPath, actor, conf.Teapot.GradingRepoName, repoName, runNumber, @@ -59,8 +59,12 @@ func Run(conf *conf.Conf) error { if err != nil { scoreboardErr = err } - } - if !conf.Teapot.SkipFailedTable { + }() + } + if !conf.Teapot.SkipFailedTable { + wg.Add(1) + go func() { + defer wg.Done() err := execCommand("joint-teapot", []string{ "joj3-failed-table", envFilePath, conf.Stage.OutputPath, actor, conf.Teapot.GradingRepoName, repoName, runNumber, @@ -69,11 +73,12 @@ func Run(conf *conf.Conf) error { if err != nil { failedTableErr = err } - } - }() - go func() { - defer wg.Done() - if !conf.Teapot.SkipIssue { + }() + } + if !conf.Teapot.SkipIssue { + wg.Add(1) + go func() { + defer wg.Done() err := execCommand("joint-teapot", []string{ "joj3-create-result-issue", envFilePath, conf.Stage.OutputPath, repoName, runNumber, conf.Name, actor, sha, @@ -81,8 +86,8 @@ func Run(conf *conf.Conf) error { if err != nil { issueErr = err } - } - }() + }() + } wg.Wait() if scoreboardErr != nil || failedTableErr != nil || issueErr != nil { slog.Error("teapot exit", "scoreboardErr", scoreboardErr,