ci: parallelize Format/Analyze/CheckGenerated/Coverage in Check() (#513)

This commit was merged in pull request #513.
This commit is contained in:
Bot of Thomas Güttler
2026-06-07 04:38:35 +02:00
parent 69606ce586
commit 609208247a
+27 -19
View File
@@ -594,25 +594,33 @@ func (m *Ci) Check(ctx context.Context) (string, error) {
return "", err return "", err
} }
checkSetup := m.setup(m.checkSrc()) // Run format, analyze, generated-code check, and coverage in parallel —
// they all share the same setup base and have no dependencies on each other.
if _, err := checkSetup.WithExec([]string{"dart", "format", "--output=none", "--set-exit-if-changed", "lib", "test"}).Stdout(ctx); err != nil { var analyze, mocks, coverage string
return "Format check failed", err var checkEg errgroup.Group
} checkEg.Go(func() error {
setup := m.setup(m.checkSrc())
analyze, err := checkSetup.WithExec([]string{"dart", "analyze", "--fatal-infos"}).Stdout(ctx) _, err := setup.WithExec([]string{"dart", "format", "--output=none", "--set-exit-if-changed", "lib", "test"}).Stdout(ctx)
if err != nil { return err
return analyze, err })
} checkEg.Go(func() error {
setup := m.setup(m.checkSrc())
mocks, err := m.CheckGenerated(ctx) var err error
if err != nil { analyze, err = setup.WithExec([]string{"dart", "analyze", "--fatal-infos"}).Stdout(ctx)
return mocks, err return err
} })
checkEg.Go(func() error {
coverage, err := m.Coverage(ctx) var err error
if err != nil { mocks, err = m.CheckGenerated(ctx)
return coverage, err return err
})
checkEg.Go(func() error {
var err error
coverage, err = m.Coverage(ctx)
return err
})
if err := checkEg.Wait(); err != nil {
return "", err
} }
// Use errgroup.Group (not WithContext) so a failing test does not cancel its // Use errgroup.Group (not WithContext) so a failing test does not cancel its