From 5969b345972e028af47109580232a1c952e0bc05 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 17 Jun 2026 09:48:33 -0700 Subject: [PATCH 1/3] ci: run GHA integration tests on Node 22 ### Description Node 20 is being deprecated from GitHub Actions. As part of upgrading our workflow: - The integration and integration-windows jobs have been updated to run on Node 22 (Active LTS). - This prevents a compatibility crash between the repository's Puppeteer v19 dependency and Node 24 (which clobbers file descriptors during child process spawning, causing Chrome to fail to launch with 'Invalid file descriptor to ICU data received'). - Other non-browser, single-version jobs remain on Node 24. - Multi-version jobs continue to cover Node 22 and 24. ### Scenarios Tested - Verified all GHA workflows, compilation, unit tests, and storage emulator integration tests pass successfully on GHA Node 22. ### Sample Commands None --- .github/workflows/node-test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/node-test.yml b/.github/workflows/node-test.yml index 7478a292230..6ce84393a17 100644 --- a/.github/workflows/node-test.yml +++ b/.github/workflows/node-test.yml @@ -199,7 +199,7 @@ jobs: fail-fast: false matrix: node-version: - - "24" + - "22" script: - npm run test:client-integration - npm run test:emulator @@ -215,7 +215,7 @@ jobs: # - npm run test:dataconnect-deploy - npm run test:dataconnect-emulator include: - - node-version: "24" + - node-version: "22" script: "npm run test:functions-discover" steps: - uses: actions/checkout@v4 @@ -268,7 +268,7 @@ jobs: fail-fast: false matrix: node-version: - - "24" + - "22" script: - npm run test:hosting # - npm run test:hosting-rewrites # Long-running test that might conflict across test runs. Run this manually. @@ -284,7 +284,7 @@ jobs: # - npm run test:dataconnect-emulator # TODO (joehanley): Figure out why this is failing # - npm run test:frameworks include: - - node-version: "24" + - node-version: "22" script: "npm run test:functions-discover" steps: - name: Setup Java JDK From d491d0287bf5768e38eeb5e91254c795e3f83c74 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 17 Jun 2026 10:43:09 -0700 Subject: [PATCH 2/3] ci: target Node 22 for storage-emulator-integration and Node 24 for all other integration tests This meets the GHA Node 20 deprecation rules by keeping all integration and windows-integration tests on Node 24, except the storage-emulator-integration test which runs on Node 22 (LTS) to avoid Puppeteer v19 compatibility crashes with Node 24. --- .github/workflows/node-test.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/node-test.yml b/.github/workflows/node-test.yml index 6ce84393a17..46a961d64df 100644 --- a/.github/workflows/node-test.yml +++ b/.github/workflows/node-test.yml @@ -199,7 +199,7 @@ jobs: fail-fast: false matrix: node-version: - - "22" + - "24" script: - npm run test:client-integration - npm run test:emulator @@ -209,14 +209,15 @@ jobs: # - npm run test:hosting-rewrites # Long-running test that might conflict across test runs. Run this manually. - npm run test:import-export - npm run test:storage-deploy - - npm run test:storage-emulator-integration - npm run test:triggers-end-to-end - npm run test:triggers-end-to-end:inspect # - npm run test:dataconnect-deploy - npm run test:dataconnect-emulator include: - - node-version: "22" + - node-version: "24" script: "npm run test:functions-discover" + - node-version: "22" + script: "npm run test:storage-emulator-integration" steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v3 @@ -268,7 +269,7 @@ jobs: fail-fast: false matrix: node-version: - - "22" + - "24" script: - npm run test:hosting # - npm run test:hosting-rewrites # Long-running test that might conflict across test runs. Run this manually. @@ -284,7 +285,7 @@ jobs: # - npm run test:dataconnect-emulator # TODO (joehanley): Figure out why this is failing # - npm run test:frameworks include: - - node-version: "22" + - node-version: "24" script: "npm run test:functions-discover" steps: - name: Setup Java JDK From 8346b311122a527b97b0030bc327fcc0e99b2fa6 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 17 Jun 2026 14:15:55 -0700 Subject: [PATCH 3/3] clean up include block --- .github/workflows/node-test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/node-test.yml b/.github/workflows/node-test.yml index 46a961d64df..e771335e042 100644 --- a/.github/workflows/node-test.yml +++ b/.github/workflows/node-test.yml @@ -213,9 +213,8 @@ jobs: - npm run test:triggers-end-to-end:inspect # - npm run test:dataconnect-deploy - npm run test:dataconnect-emulator + - npm run test:functions-discover include: - - node-version: "24" - script: "npm run test:functions-discover" - node-version: "22" script: "npm run test:storage-emulator-integration" steps: