google-gemini / google-gemini/gemini-cli

Nightly performance tests abort after ripgrep resolver rename

Open Beginner friendly
#28,417 4 comments 0 reactions 0 assignees View on GitHub
area/core effort/small kind/bug priority/p1 status/bot-triaged
Dominant language
TypeScript
Stars
107k
Forks
14.6k
Avg merge
2d 3h
Merged PRs (30d)
45

Description

## What happened

The scheduled [Performance Tests: Nightly](https://github.com/google-gemini/gemini-cli/actions/workflows/perf-nightly.yml) workflow aborts in global setup before any performance test executes.

`perf-tests/globalSetup.ts` still imports and calls `canUseRipgrep`, but current `packages/core/src/tools/ripGrep.ts` no longer exports that function. It was replaced by `resolveRipgrepPath` in `0750b01fe4e7b62d55d92918b1c4535a77acc334`.

The first nightly after that change, [run 25841561983](https://github.com/google-gemini/gemini-cli/actions/runs/25841561983), reports:

```text
No test files found, exiting with code 1
TypeError: (0 , __vite_ssr_import_3__.canUseRipgrep) is not a function
Object.setup globalSetup.ts:27:66
```

The latest checked run, [29470500728](https://github.com/google-gemini/gemini-cli/actions/runs/29470500728), fails at the same call site. All 64 scheduled performance runs from May 14 through July 16 failed, with no successful run in that interval.

## Expected behavior

Global setup should resolve the current ripgrep binary API and allow `perf-tests/perf-usage.test.ts` to execute, so the nightly workflow can detect CPU and latency regressions.

## Client information

This is the repository-owned scheduled workflow rather than a local Gemini CLI session, so `/about` output is not applicable.

- Runner: `gemini-cli-ubuntu-16-core`
- Node.js: `v20.20.2`
- npm: `10.8.2`
- Latest checked main SHA: `3ff5ba20fc1ad7d867218bbdb34756eb54d6eccb`

## Login information

Not applicable. The failure occurs before any performance test or authenticated CLI scenario runs.

## Anything else we need to know?

Update performance global setup to use the current ripgrep resolver and add focused coverage at that setup boundary so a stale runtime import cannot silently disable the nightly performance gate again.

Contributor guide

Open the contributing guide

Research direction

Start in perf-tests/globalSetup.ts and compare its stale ripgrep import with the current API in packages/core/src/tools/ripGrep.ts. Trace the setup boundary and add focused coverage there, then run perf-tests/perf-usage.test.ts and the Performance Tests: Nightly workflow. Done means global setup completes and the performance test can execute.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript
Domain
ci-cd, performance, testing
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
82/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.