Skip to content

Conversation

@ffranr
Copy link
Contributor

@ffranr ffranr commented Dec 6, 2025

  • Add tranche splitting/shuffling support to itest harness and wire per-tranche logging/exit reporting.
  • Introduce itest_parallel runner/Make targets (with and without backward-compat binaries) and per-tranche log directories.
  • Update GitHub Actions itest matrix to use parallel tranches (4).

@ffranr ffranr self-assigned this Dec 6, 2025
@gemini-code-assist
Copy link

Summary of Changes

Hello @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

  • Parallel Integration Tests: Introduced the capability to run integration tests in parallel by splitting them into 'tranches'.
  • Tranche Splitting and Shuffling: The integration test harness now supports dividing the test suite into tranches and deterministically shuffling test cases to balance workload.
  • Dedicated Logging and Reporting: Implemented per-tranche logging and exit reporting to provide clear feedback on the status of each parallel test run.
  • New Make Targets: Added itest-parallel and itest-parallel-no-backward-compat Make targets to easily trigger parallel integration test execution.
  • CI Integration: Updated GitHub Actions CI matrix to leverage the new parallel tranche functionality, initially configured for 4 tranches.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/main.yml
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.

@ffranr ffranr added no-changelog This PR is does not require a release notes entry tests labels Dec 6, 2025
Copy link

@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 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
@ffranr ffranr force-pushed the feat/itest-tranche-parallel branch from b492be8 to b8f716c Compare December 6, 2025 00:58
@ffranr
Copy link
Contributor Author

ffranr commented Dec 6, 2025

I think branch protection rules need to be updated for CI to pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR is does not require a release notes entry tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants