Skip to content

feat: expand verify-release to macOS and Windows#18145

Merged
yunaseoul merged 3 commits intomainfrom
feat/verify-release-matrix
Feb 5, 2026
Merged

feat: expand verify-release to macOS and Windows#18145
yunaseoul merged 3 commits intomainfrom
feat/verify-release-matrix

Conversation

@yunaseoul
Copy link
Copy Markdown
Contributor

@yunaseoul yunaseoul commented Feb 2, 2026

feat: expand verify-release to macOS and Windows

Summary

Updates the verify-release workflow to run on a matrix of OSes (Ubuntu, macOS, Windows) to ensure cross-platform compatibility of the release verification process.

Details

  • Modifies .github/workflows/verify-release.yml to use a build matrix for os.
  • Updates packages/test-utils/src/test-rig.ts to correctly handle the binary name (gemini.cmd) on Windows when running NPM release tests.
  • Refactors os import to use from 'os' for broader compatibility.

Related Issues

Fixes #18140

How to Validate

  1. Trigger the verify-release workflow manually from the Actions tab.
  2. Observe that it spawns three jobs (one for each OS).
  3. Verify that all jobs succeed.

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
    • Windows
      • npm run
    • Linux
      • npm run

@yunaseoul yunaseoul requested review from a team as code owners February 2, 2026 23:08
@gemini-cli
Copy link
Copy Markdown
Contributor

gemini-cli bot commented Feb 2, 2026

Hi there! Thank you for your contribution to Gemini CLI.

To improve our contribution process and better track changes, we now require all pull requests to be associated with an existing issue, as announced in our recent discussion and as detailed in our CONTRIBUTING.md.

This pull request is being closed because it is not currently linked to an issue. Once you have updated the description of this PR to link an issue (e.g., by adding Fixes #123 or Related to #123), it will be automatically reopened.

How to link an issue:
Add a keyword followed by the issue number (e.g., Fixes #123) in the description of your pull request. For more details on supported keywords and how linking works, please refer to the GitHub Documentation on linking pull requests to issues.

Thank you for your understanding and for being a part of our community!

@gemini-cli gemini-cli bot closed this Feb 2, 2026
@gemini-cli
Copy link
Copy Markdown
Contributor

gemini-cli bot commented Feb 2, 2026

Hi @yunaseoul, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this.

We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines.

Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed.

Thank you for your understanding and for being a part of our community!

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @yunaseoul, 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 enhances the robustness of the release verification process by extending the verify-release GitHub Actions workflow to cover multiple operating systems. This ensures that the release artifacts and associated tooling function correctly across Linux, macOS, and Windows environments, preventing platform-specific regressions.

Highlights

  • Cross-platform verify-release workflow: The verify-release GitHub Actions workflow has been expanded to run across Ubuntu, macOS, and Windows to ensure comprehensive testing of the release verification process.
  • Windows binary handling: Modified packages/test-utils/src/test-rig.ts to correctly identify the gemini.cmd executable on Windows when running NPM release tests, ensuring proper command execution on that platform.
Changelog
  • packages/test-utils/src/test-rig.ts
    • Updated the command variable logic to dynamically determine the correct executable name for the gemini binary based on the operating system. Specifically, it now uses gemini.cmd for Windows and gemini for other platforms when isNpmReleaseTest is true.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/verify-release.yml
Activity
  • The author has validated the changes on macOS, Windows, and Linux using npm run.
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.

@yunaseoul yunaseoul reopened this Feb 2, 2026
Copy link
Copy Markdown
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 pull request aims to expand the verify-release workflow to support macOS and Windows. The change in packages/test-utils/src/test-rig.ts correctly handles the binary name for Windows. However, it introduces a dependency on the os module without importing it, which will cause a runtime error. This is a critical issue that needs to be addressed.

@gemini-cli gemini-cli bot added status/need-issue Pull requests that need to have an associated issue. area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt and removed status/need-issue Pull requests that need to have an associated issue. labels Feb 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 3, 2026

Size Change: -2 B (0%)

Total Size: 23.7 MB

ℹ️ View Unchanged
Filename Size Change
./bundle/gemini.js 23.7 MB -2 B (0%)
./bundle/sandbox-macos-permissive-closed.sb 1.03 kB 0 B
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-closed.sb 3.29 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B

compressed-size-action

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@yunaseoul yunaseoul force-pushed the feat/verify-release-matrix branch 4 times, most recently from d294814 to 2b955cc Compare February 4, 2026 19:06
@yunaseoul
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
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 pull request successfully expands the verify-release workflow to support macOS and Windows by updating the test rig to handle platform-specific command names. The changes are logical and directly address the goal. However, one of the changes introduces an inconsistency in how Node.js built-in modules are imported compared to the rest of the codebase. While this was done for compatibility, it's a maintainability risk. I've left a comment with suggestions to either apply the change consistently or add documentation to prevent future issues.

import * as pty from '@lydell/node-pty';
import stripAnsi from 'strip-ansi';
import * as os from 'node:os';
import * as os from 'os';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

This change from import * as os from 'node:os'; to import * as os from 'os'; introduces an inconsistency. Other files in the project, such as packages/cli/src/gemini.tsx and packages/core/src/utils/shell-utils.ts, still use the recommended node: prefix for built-in modules.

If this change is required for compatibility with a specific tool in the CI pipeline, it's important to either:

  1. Apply this change consistently across the codebase for all Node.js built-in imports.
  2. Add a comment explaining why this specific file needs to deviate from the project's standard import style. This will prevent other developers from reverting it and accidentally breaking the build.

Without consistency or a comment, this creates a maintainability issue that could lead to hard-to-debug problems in the future.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

reverted back.

@yunaseoul yunaseoul force-pushed the feat/verify-release-matrix branch from a6b4f26 to c4eb567 Compare February 5, 2026 20:43
@yunaseoul yunaseoul added this pull request to the merge queue Feb 5, 2026
Merged via the queue into main with commit 00a739e Feb 5, 2026
26 checks passed
@yunaseoul yunaseoul deleted the feat/verify-release-matrix branch February 5, 2026 21:32
sidwan02 pushed a commit to sidwan02/gemini-cli-gemma that referenced this pull request Feb 6, 2026
Co-authored-by: Yuna Seol <yunaseol@google.com>
aswinashok44 pushed a commit to aswinashok44/gemini-cli that referenced this pull request Feb 9, 2026
Co-authored-by: Yuna Seol <yunaseol@google.com>
kuishou68 pushed a commit to iOfficeAI/aioncli that referenced this pull request Feb 27, 2026
Co-authored-by: Yuna Seol <yunaseol@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cross-Platform Automated Validation for Gemini CLI installation and execution

4 participants