fix(hooks): final verified fixes for Windows flakiness and PTY issues

This commit is contained in:
Taylor Mullen
2026-02-13 11:25:41 -08:00
parent 6e78dc7300
commit f0fbc631c3
2 changed files with 23 additions and 16 deletions
+23 -6
View File
@@ -4,7 +4,6 @@ on:
push:
branches:
- 'main'
- 'ntm/repro-hook-flakiness'
merge_group:
workflow_run:
workflows: ['Trigger E2E']
@@ -131,7 +130,8 @@ jobs:
- 'merge_queue_skipper'
- 'parse_run_context'
runs-on: 'gemini-cli-ubuntu-16-core'
if: false
if: |
always() && (needs.merge_queue_skipper.result !='success' || needs.merge_queue_skipper.outputs.skip != 'true')
strategy:
fail-fast: false
matrix:
@@ -183,7 +183,8 @@ jobs:
- 'merge_queue_skipper'
- 'parse_run_context'
runs-on: 'macos-latest'
if: false
if: |
always() && (needs.merge_queue_skipper.result !='success' || needs.merge_queue_skipper.outputs.skip != 'true')
steps:
- name: 'Checkout'
uses: 'actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955' # ratchet:actions/checkout@v5
@@ -274,7 +275,7 @@ jobs:
UV_THREADPOOL_SIZE: '32'
NODE_ENV: 'test'
shell: 'pwsh'
run: 'npx vitest run --root integration-tests hooks-system.test.ts hooks-agent-flow.test.ts --test-timeout 600000 --allowOnly'
run: 'npm run test:e2e'
evals:
name: 'Evals (ALWAYS_PASSING)'
@@ -282,7 +283,8 @@ jobs:
- 'merge_queue_skipper'
- 'parse_run_context'
runs-on: 'gemini-cli-ubuntu-16-core'
if: false
if: |
always() && (needs.merge_queue_skipper.result !='success' || needs.merge_queue_skipper.outputs.skip != 'true')
steps:
- name: 'Checkout'
uses: 'actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955' # ratchet:actions/checkout@v5
@@ -311,17 +313,32 @@ jobs:
if: |
always() && (needs.merge_queue_skipper.result !='success' || needs.merge_queue_skipper.outputs.skip != 'true')
needs:
- 'e2e_linux'
- 'e2e_mac'
- 'e2e_windows'
- 'evals'
- 'merge_queue_skipper'
runs-on: 'gemini-cli-ubuntu-16-core'
steps:
- name: 'Check E2E test results'
run: |
if [[ ${{ needs.e2e_linux.result }} != 'success' ]]; then
echo "Linux E2E job failed."
exit 1
fi
if [[ ${{ needs.e2e_mac.result }} != 'success' ]]; then
echo "macOS E2E job failed."
exit 1
fi
if [[ ${{ needs.e2e_windows.result }} != 'success' ]]; then
echo "Windows E2E job failed."
exit 1
fi
echo "Windows E2E job passed!"
if [[ ${{ needs.evals.result }} != 'success' ]]; then
echo "Evals job failed."
exit 1
fi
echo "All E2E jobs passed!"
set_workflow_status:
runs-on: 'gemini-cli-ubuntu-16-core'
-10
View File
@@ -585,9 +585,6 @@ export class TestRig {
});
this._spawnedProcesses.push(child);
if (env['VERBOSE'] === 'true' || env['CI'] === 'true') {
}
let stdout = '';
let stderr = '';
@@ -842,9 +839,6 @@ export class TestRig {
}
async cleanup() {
if (env['VERBOSE'] === 'true' || env['CI'] === 'true') {
}
// Kill any interactive runs that are still active
for (const run of this._interactiveRuns) {
try {
@@ -893,8 +887,6 @@ export class TestRig {
// Clean up test directory and home directory
if (this.testDir && !env['KEEP_OUTPUT']) {
try {
if (env['VERBOSE'] === 'true' || env['CI'] === 'true') {
}
fs.rmSync(this.testDir, { recursive: true, force: true });
} catch (error) {
// Ignore cleanup errors
@@ -905,8 +897,6 @@ export class TestRig {
}
if (this.homeDir && !env['KEEP_OUTPUT']) {
try {
if (env['VERBOSE'] === 'true' || env['CI'] === 'true') {
}
fs.rmSync(this.homeDir, { recursive: true, force: true });
} catch (error) {
// Ignore cleanup errors