diff --git a/.github/workflows/java.yaml b/.github/workflows/java.yaml index 628b950cf7..26cac0765e 100644 --- a/.github/workflows/java.yaml +++ b/.github/workflows/java.yaml @@ -116,7 +116,7 @@ jobs: working-directory: google-cloud-java run: librarian generate secretmanager - name: Run librarian generate all (integration test) - if: matrix.task == 'integration' && github.event_name == 'push' && github.ref == 'refs/heads/main' + if: matrix.task == 'integration' working-directory: google-cloud-java run: librarian generate --all create-issue-on-failure: diff --git a/internal/librarian/generate.go b/internal/librarian/generate.go index 6f46df842d..ca6f67231b 100644 --- a/internal/librarian/generate.go +++ b/internal/librarian/generate.go @@ -241,10 +241,18 @@ func generateLibraries(ctx context.Context, cfg *config.Config, libraries []*con } return g.Wait() case config.LanguageJava: + g, gctx := errgroup.WithContext(ctx) + g.SetLimit(runtime.NumCPU()) for _, library := range libraries { - if err := java.Generate(ctx, cfg, library, src); err != nil { - return fmt.Errorf("generate library %q (%s): %w", library.Name, cfg.Language, err) - } + g.Go(func() error { + if err := java.Generate(gctx, cfg, library, src); err != nil { + return fmt.Errorf("generate library %q (%s): %w", library.Name, cfg.Language, err) + } + return nil + }) + } + if err := g.Wait(); err != nil { + return err } if err := java.Format(ctx, libraries...); err != nil { return fmt.Errorf("format java libraries (%s): %w", cfg.Language, err)