-
Notifications
You must be signed in to change notification settings - Fork 112
Add tranche-based parallel itests and enable in CI #1186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @ffranr, 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 significantly enhances the efficiency of the integration test suite by enabling parallel execution. It introduces a robust system for dividing tests into manageable tranches, shuffling them for even distribution, and providing isolated logging for each parallel run. This change is crucial for reducing CI build times and accelerating developer feedback cycles, ultimately improving the development workflow. Highlights
Ignored Files
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces parallel execution for integration tests by splitting them into tranches. The changes include new Makefile targets, shell scripts for orchestration, and modifications to the Go test runner to support test splitting and shuffling. Overall, the implementation is solid and well-structured. I have one suggestion in itest/litd_test.go to improve the random number generation by using the standard math/rand package and avoiding seeding the global random number generator, which is a recommended practice for robustness and test isolation.
- add tranche splitting/shuffling flags to the itest harness - add itest-parallel target and scripts to run tranches concurrently - write per-tranche logs under .logs/trancheN and tail failures for clarity
- switch itest matrix jobs to use itest-parallel(-no-backward-compat) - run four tranches per job
b492be8 to
b8f716c
Compare
|
I think branch protection rules need to be updated for CI to pass. |
itest_parallelrunner/Make targets (with and without backward-compat binaries) and per-tranche log directories.