Skip to content

Conversation

@mattKorwel
Copy link
Collaborator

@mattKorwel mattKorwel commented Sep 16, 2025

TLDR

This PR introduces several optimizations to the CI and E2E workflows to improve performance and reduce execution time.

  1. Introduction of "merge skipper". If a pr has passing tests and is the only one in the merge queue it will skip running the tests again and merge without an additional build.
  2. Added parallelization across all front so tets run in parallel at the package, file and os level
  3. Moved to a much larger windows machine type (though will likely undo this) and added node and windows defender optimizations to improve speed.
  4. Made "Slow tests" non blocking. This is the biggest change, The build will pass and PR's can merge when the linux tests pass for both ci and e2e. The tests will keep running and the build will show they failed but we will not be blocked on windows or mac. Though, mac is running pretty fast too..

Outcomes.

  • Before these changes CI All Jobs: 13 - 15 minutes.
  • After these changes CI All Jobs: 8 -9 minutes.
  • After These Changes CI Blocking jobs (ci & e2e) 3 - 4 minutes.

- Parallelize javascript linting in CI
- Cache linting dependencies in CI
- Use larger runners for CI and E2E
- Centralize build step in E2E
- Enable parallel testing in E2E
@mattKorwel mattKorwel requested review from a team as code owners September 16, 2025 03:00
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @mattKorwel, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on enhancing the performance of the continuous integration (CI) and end-to-end (E2E) workflows. By enabling parallel execution for both Vitest integration tests and npm workspace test commands, the changes aim to reduce overall build and test times, leading to a more efficient development cycle.

Highlights

  • Vitest Parallelism: Enabled "fileParallelism" in "integration-tests/vitest.config.ts" to allow Vitest to run test files in parallel, which should significantly speed up integration test execution.
  • Parallel Workspace Testing: Added the "--parallel" flag to the "test:ci" script in "package.json" to execute workspace tests concurrently, further reducing CI pipeline time.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This PR introduces parallel execution for tests to improve CI performance. While this is a good optimization, I've raised concerns in both changed files about the potential for race conditions and test flakiness if the tests are not properly isolated. These changes could impact CI stability if the test suites are not designed to be parallel-safe.

@github-actions
Copy link

github-actions bot commented Sep 16, 2025

Size Change: +3.49 kB (+0.02%)

Total Size: 17.3 MB

Filename Size Change
./bundle/gemini.js 17.3 MB +3.49 kB (+0.02%)
ℹ️ View Unchanged
Filename Size
./bundle/sandbox-macos-permissive-closed.sb 1.03 kB
./bundle/sandbox-macos-permissive-open.sb 830 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB
./bundle/sandbox-macos-restrictive-closed.sb 3.29 kB
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB

compressed-size-action

@github-actions
Copy link

github-actions bot commented Sep 16, 2025

Code Coverage Summary

Package Lines Statements Functions Branches
CLI N/A% N/A% N/A% N/A%
Core N/A% N/A% N/A% N/A%
CLI Package - Full Text Report
CLI full-text-summary.txt not found at: coverage_artifact/cli/coverage/full-text-summary.txt
Core Package - Full Text Report
Core full-text-summary.txt not found at: coverage_artifact/core/coverage/full-text-summary.txt

For detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run.

@mattKorwel
Copy link
Collaborator Author

Screenshot 2025-09-18 at 8 47 24 AM Screenshot 2025-09-18 at 8 47 39 AM

@mattKorwel mattKorwel changed the title feat(ci): optimize ci and e2e workflows Improve CI Times by 70% Sep 18, 2025
@mattKorwel mattKorwel disabled auto-merge September 18, 2025 23:29
@mattKorwel mattKorwel merged commit 509444d into main Sep 18, 2025
19 of 21 checks passed
@mattKorwel mattKorwel deleted the feature/ci-optimizations branch September 18, 2025 23:29
abhipatel12 pushed a commit that referenced this pull request Sep 19, 2025
nagendrareddy10 pushed a commit to nagendrareddy10/gemini-cli that referenced this pull request Sep 22, 2025
yashv6655 added a commit to yashv6655/gemini-cli that referenced this pull request Sep 22, 2025
thacio added a commit to thacio/auditaria that referenced this pull request Oct 3, 2025
giraffe-tree pushed a commit to giraffe-tree/gemini-cli that referenced this pull request Oct 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants