feat(cmd/joj3): run all commands concurrently in teapot #66
| 
						 | 
					@ -47,10 +47,10 @@ func Run(conf *conf.Conf) error {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var wg sync.WaitGroup
 | 
						var wg sync.WaitGroup
 | 
				
			||||||
	var scoreboardErr, failedTableErr, issueErr error
 | 
						var scoreboardErr, failedTableErr, issueErr error
 | 
				
			||||||
	wg.Add(2)
 | 
						if !conf.Teapot.SkipScoreboard {
 | 
				
			||||||
 | 
							wg.Add(1)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			defer wg.Done()
 | 
								defer wg.Done()
 | 
				
			||||||
		if !conf.Teapot.SkipScoreboard {
 | 
					 | 
				
			||||||
			err := execCommand("joint-teapot", []string{
 | 
								err := execCommand("joint-teapot", []string{
 | 
				
			||||||
				"joj3-scoreboard", envFilePath, conf.Stage.OutputPath, actor,
 | 
									"joj3-scoreboard", envFilePath, conf.Stage.OutputPath, actor,
 | 
				
			||||||
				conf.Teapot.GradingRepoName, repoName, runNumber,
 | 
									conf.Teapot.GradingRepoName, repoName, runNumber,
 | 
				
			||||||
| 
						 | 
					@ -59,8 +59,12 @@ func Run(conf *conf.Conf) error {
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				scoreboardErr = err
 | 
									scoreboardErr = err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
							}()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if !conf.Teapot.SkipFailedTable {
 | 
						if !conf.Teapot.SkipFailedTable {
 | 
				
			||||||
 | 
							wg.Add(1)
 | 
				
			||||||
 | 
							go func() {
 | 
				
			||||||
 | 
								defer wg.Done()
 | 
				
			||||||
			err := execCommand("joint-teapot", []string{
 | 
								err := execCommand("joint-teapot", []string{
 | 
				
			||||||
				"joj3-failed-table", envFilePath, conf.Stage.OutputPath, actor,
 | 
									"joj3-failed-table", envFilePath, conf.Stage.OutputPath, actor,
 | 
				
			||||||
				conf.Teapot.GradingRepoName, repoName, runNumber,
 | 
									conf.Teapot.GradingRepoName, repoName, runNumber,
 | 
				
			||||||
| 
						 | 
					@ -69,11 +73,12 @@ func Run(conf *conf.Conf) error {
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				failedTableErr = err
 | 
									failedTableErr = err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		}()
 | 
							}()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if !conf.Teapot.SkipIssue {
 | 
				
			||||||
 | 
							wg.Add(1)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			defer wg.Done()
 | 
								defer wg.Done()
 | 
				
			||||||
		if !conf.Teapot.SkipIssue {
 | 
					 | 
				
			||||||
			err := execCommand("joint-teapot", []string{
 | 
								err := execCommand("joint-teapot", []string{
 | 
				
			||||||
				"joj3-create-result-issue", envFilePath, conf.Stage.OutputPath,
 | 
									"joj3-create-result-issue", envFilePath, conf.Stage.OutputPath,
 | 
				
			||||||
				repoName, runNumber, conf.Name, actor, sha,
 | 
									repoName, runNumber, conf.Name, actor, sha,
 | 
				
			||||||
| 
						 | 
					@ -81,8 +86,8 @@ func Run(conf *conf.Conf) error {
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				issueErr = err
 | 
									issueErr = err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		}()
 | 
							}()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	wg.Wait()
 | 
						wg.Wait()
 | 
				
			||||||
	if scoreboardErr != nil || failedTableErr != nil || issueErr != nil {
 | 
						if scoreboardErr != nil || failedTableErr != nil || issueErr != nil {
 | 
				
			||||||
		slog.Error("teapot exit", "scoreboardErr", scoreboardErr,
 | 
							slog.Error("teapot exit", "scoreboardErr", scoreboardErr,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user