From c2cf7a15ce60357f5002ce41bc6b16358c833465 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 20:12:37 +0000 Subject: [PATCH] chore: upgrade Node.js version to 20 for CI and triggers This change upgrades the Node.js version from 18 to 20 across the CI pipeline and Cloud Build triggers. This resolves compatibility issues with dependencies that require Node.js >= 20. Changes: - Updated `ci/cloudbuild.yaml` and `ci/cloudbuild_with_credentials.yaml` to set default `_NODE_VERSION` to 20. - Updated `ci/Dockerfile` to set default `NODE_VERSION` to 20. - Renamed and updated all trigger configuration files in `ci/export/` to reflect the upgrade to Node 20. - Updated `ci/import_triggers.sh` and `ci/export_triggers.sh` to use Node 20. - Updated `containers/node-bootstrap-container/Dockerfile` to use `node:20-slim`. - Explicitly added `_NODE_VERSION: '20'` to trigger substitutions in exported YAML files. Co-authored-by: danieljbruce <8935272+danieljbruce@users.noreply.github.com> --- ci/Dockerfile | 2 +- ci/cloudbuild.yaml | 2 +- ci/cloudbuild_with_credentials.yaml | 2 +- ...s.yaml => samples-continous-node20-with-credentials.yaml} | 5 +++-- ...continuous-node14.yaml => samples-continuous-node20.yaml} | 5 +++-- ...als.yaml => samples-nightly-node20-with-credentials.yaml} | 5 +++-- ...mples-nightly-node14.yaml => samples-nightly-node20.yaml} | 5 +++-- ...s.yaml => samples-presubmit-node20-with-credentials.yaml} | 5 +++-- ...s-presubmit-node14.yaml => samples-presubmit-node20.yaml} | 5 +++-- ...-continuous-node14.yaml => system-continuous-node20.yaml} | 5 +++-- ...system-nightly-node14.yaml => system-nightly-node20.yaml} | 5 +++-- ...em-presubmit-node14.yaml => system-presubmit-node20.yaml} | 5 +++-- ci/export_triggers.sh | 2 +- ci/import_triggers.sh | 2 +- containers/node-bootstrap-container/Dockerfile | 4 ++-- 15 files changed, 34 insertions(+), 25 deletions(-) rename ci/export/{samples-continous-node14-with-credentials.yaml => samples-continous-node20-with-credentials.yaml} (78%) rename ci/export/{samples-continuous-node14.yaml => samples-continuous-node20.yaml} (84%) rename ci/export/{samples-nightly-node14-with-credentials.yaml => samples-nightly-node20-with-credentials.yaml} (84%) rename ci/export/{samples-nightly-node14.yaml => samples-nightly-node20.yaml} (87%) rename ci/export/{samples-presubmit-node14-with-credentials.yaml => samples-presubmit-node20-with-credentials.yaml} (85%) rename ci/export/{samples-presubmit-node14.yaml => samples-presubmit-node20.yaml} (86%) rename ci/export/{system-continuous-node14.yaml => system-continuous-node20.yaml} (84%) rename ci/export/{system-nightly-node14.yaml => system-nightly-node20.yaml} (87%) rename ci/export/{system-presubmit-node14.yaml => system-presubmit-node20.yaml} (87%) diff --git a/ci/Dockerfile b/ci/Dockerfile index d926e93df6c..5fabe79044f 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG NODE_VERSION=16 +ARG NODE_VERSION=20 ARG FLAKYBOT_VERSION=1.1.0 FROM node:${NODE_VERSION}-alpine as build diff --git a/ci/cloudbuild.yaml b/ci/cloudbuild.yaml index 74390c14ecb..79516f1734b 100644 --- a/ci/cloudbuild.yaml +++ b/ci/cloudbuild.yaml @@ -18,7 +18,7 @@ options: substitutions: _BUILD_TYPE: "presubmit" _TEST_TYPE: "system" - _NODE_VERSION: "18" + _NODE_VERSION: "20" _REPO_OWNER: "googleapis" _REPO_NAME: "google-cloud-node" diff --git a/ci/cloudbuild_with_credentials.yaml b/ci/cloudbuild_with_credentials.yaml index 719dca1c462..f263eb9ad84 100644 --- a/ci/cloudbuild_with_credentials.yaml +++ b/ci/cloudbuild_with_credentials.yaml @@ -18,7 +18,7 @@ options: substitutions: _BUILD_TYPE: "presubmit" _TEST_TYPE: "system" - _NODE_VERSION: "18" + _NODE_VERSION: "20" logsBucket: 'gs://${_LOGS_BUCKET}/logs/google-cloud-node/${_BUILD_TYPE}/${COMMIT_SHA}/${TRIGGER_NAME}' timeout: 7200s diff --git a/ci/export/samples-continous-node14-with-credentials.yaml b/ci/export/samples-continous-node20-with-credentials.yaml similarity index 78% rename from ci/export/samples-continous-node14-with-credentials.yaml rename to ci/export/samples-continous-node20-with-credentials.yaml index b92d5fa9f25..7fcfdb51d83 100644 --- a/ci/export/samples-continous-node14-with-credentials.yaml +++ b/ci/export/samples-continous-node20-with-credentials.yaml @@ -1,5 +1,5 @@ createTime: '2022-08-05T20:10:57.660562803Z' -description: Continuous build with node 18 +description: Continuous build with node 20 filename: ci/cloudbuild_with_credentials.yaml github: name: google-cloud-node @@ -7,9 +7,10 @@ github: push: branch: ^main$ id: 60bcf576-538e-45a8-ba92-b1b488afbf51 -name: samples-continuous-node18-with-credentials +name: samples-continuous-node20-with-credentials serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: continuous _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: samples diff --git a/ci/export/samples-continuous-node14.yaml b/ci/export/samples-continuous-node20.yaml similarity index 84% rename from ci/export/samples-continuous-node14.yaml rename to ci/export/samples-continuous-node20.yaml index de38979e591..32d027ab8bf 100644 --- a/ci/export/samples-continuous-node14.yaml +++ b/ci/export/samples-continuous-node20.yaml @@ -1,5 +1,5 @@ createTime: '2022-08-05T20:10:57.660562803Z' -description: Continuous build with node 18 +description: Continuous build with node 20 filename: ci/cloudbuild.yaml github: name: google-cloud-node @@ -7,10 +7,11 @@ github: push: branch: ^main$ id: 60bcf576-538e-45a8-ba92-b1b488afbf51 -name: samples-continuous-node18 +name: samples-continuous-node20 resourceName: projects/long-door-651/locations/global/triggers/60bcf576-538e-45a8-ba92-b1b488afbf51 serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: continuous _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: samples diff --git a/ci/export/samples-nightly-node14-with-credentials.yaml b/ci/export/samples-nightly-node20-with-credentials.yaml similarity index 84% rename from ci/export/samples-nightly-node14-with-credentials.yaml rename to ci/export/samples-nightly-node20-with-credentials.yaml index 7124f32fd46..a3364ee3521 100644 --- a/ci/export/samples-nightly-node14-with-credentials.yaml +++ b/ci/export/samples-nightly-node20-with-credentials.yaml @@ -1,18 +1,19 @@ createTime: '2022-08-05T20:10:58.882437677Z' -description: Nightly build with node 18 +description: Nightly build with node 20 gitFileSource: path: ci/cloudbuild_with_credentials.yaml repoType: GITHUB revision: refs/heads/main uri: https://github.com/googleapis/google-cloud-node id: 25a89188-0ae6-4faf-9131-9b1e3c8b9720 -name: samples-nightly-node18-with-credentials +name: samples-nightly-node20-with-credentials serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com sourceToBuild: ref: refs/heads/main repoType: GITHUB uri: https://github.com/googleapis/google-cloud-node substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: nightly _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: samples diff --git a/ci/export/samples-nightly-node14.yaml b/ci/export/samples-nightly-node20.yaml similarity index 87% rename from ci/export/samples-nightly-node14.yaml rename to ci/export/samples-nightly-node20.yaml index 4884f14dae9..3b9a623e388 100644 --- a/ci/export/samples-nightly-node14.yaml +++ b/ci/export/samples-nightly-node20.yaml @@ -1,12 +1,12 @@ createTime: '2022-08-05T20:10:58.882437677Z' -description: Nightly build with node 18 +description: Nightly build with node 20 gitFileSource: path: ci/cloudbuild.yaml repoType: GITHUB revision: refs/heads/main uri: https://github.com/googleapis/google-cloud-node id: 25a89188-0ae6-4faf-9131-9b1e3c8b9720 -name: samples-nightly-node18 +name: samples-nightly-node20 resourceName: projects/long-door-651/locations/global/triggers/25a89188-0ae6-4faf-9131-9b1e3c8b9720 serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com sourceToBuild: @@ -14,6 +14,7 @@ sourceToBuild: repoType: GITHUB uri: https://github.com/googleapis/google-cloud-node substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: nightly _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: samples diff --git a/ci/export/samples-presubmit-node14-with-credentials.yaml b/ci/export/samples-presubmit-node20-with-credentials.yaml similarity index 85% rename from ci/export/samples-presubmit-node14-with-credentials.yaml rename to ci/export/samples-presubmit-node20-with-credentials.yaml index bd7a28dedbb..b466e1e4f49 100644 --- a/ci/export/samples-presubmit-node14-with-credentials.yaml +++ b/ci/export/samples-presubmit-node20-with-credentials.yaml @@ -1,5 +1,5 @@ createTime: '2022-12-20T00:38:41.361644100Z' -description: Presubmit build with node 18 +description: Presubmit build with node 20 filename: ci/cloudbuild_with_credentials.yaml github: name: google-cloud-node @@ -9,10 +9,11 @@ github: commentControl: COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY id: 1686933b-458b-4b12-93bd-3c579c0a274d includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS -name: samples-presubmit-node18-with-credentials +name: samples-presubmit-node20-with-credentials resourceName: projects/long-door-651/locations/global/triggers/1686933b-458b-4b12-93bd-3c579c0a274d serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: presubmit _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: samples diff --git a/ci/export/samples-presubmit-node14.yaml b/ci/export/samples-presubmit-node20.yaml similarity index 86% rename from ci/export/samples-presubmit-node14.yaml rename to ci/export/samples-presubmit-node20.yaml index 800ddc85c98..b9ceb53eecc 100644 --- a/ci/export/samples-presubmit-node14.yaml +++ b/ci/export/samples-presubmit-node20.yaml @@ -1,5 +1,5 @@ createTime: '2022-12-09T00:51:41.619581321Z' -description: Presubmit build with node 18 +description: Presubmit build with node 20 filename: ci/cloudbuild.yaml github: name: google-cloud-node @@ -9,10 +9,11 @@ github: commentControl: COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY id: 7a1731ed-56ef-41b2-ad8e-d24d28b2c789 includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS -name: samples-presubmit-node18 +name: samples-presubmit-node20 resourceName: projects/long-door-651/locations/global/triggers/7a1731ed-56ef-41b2-ad8e-d24d28b2c789 serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: presubmit _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: samples diff --git a/ci/export/system-continuous-node14.yaml b/ci/export/system-continuous-node20.yaml similarity index 84% rename from ci/export/system-continuous-node14.yaml rename to ci/export/system-continuous-node20.yaml index de5354b4458..47986f7541e 100644 --- a/ci/export/system-continuous-node14.yaml +++ b/ci/export/system-continuous-node20.yaml @@ -1,5 +1,5 @@ createTime: '2022-06-22T20:37:15.591560546Z' -description: Continuous build with node 18 +description: Continuous build with node 20 filename: ci/cloudbuild.yaml github: name: google-cloud-node @@ -7,10 +7,11 @@ github: push: branch: ^main$ id: d05bbe17-fb41-4a39-9be2-3210779da9fb -name: system-continuous-node18 +name: system-continuous-node20 resourceName: projects/long-door-651/locations/global/triggers/d05bbe17-fb41-4a39-9be2-3210779da9fb serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: continuous _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: system diff --git a/ci/export/system-nightly-node14.yaml b/ci/export/system-nightly-node20.yaml similarity index 87% rename from ci/export/system-nightly-node14.yaml rename to ci/export/system-nightly-node20.yaml index b3e8a5d92a3..85e04b2ca33 100644 --- a/ci/export/system-nightly-node14.yaml +++ b/ci/export/system-nightly-node20.yaml @@ -1,12 +1,12 @@ createTime: '2022-06-22T20:37:16.583211868Z' -description: Nightly build with node 18 +description: Nightly build with node 20 gitFileSource: path: ci/cloudbuild.yaml repoType: GITHUB revision: refs/heads/main uri: https://github.com/googleapis/google-cloud-node id: 99dfe29e-f360-4f08-a026-2cbd7c24cd41 -name: system-nightly-node18 +name: system-nightly-node20 resourceName: projects/long-door-651/locations/global/triggers/99dfe29e-f360-4f08-a026-2cbd7c24cd41 serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com sourceToBuild: @@ -14,6 +14,7 @@ sourceToBuild: repoType: GITHUB uri: https://github.com/googleapis/google-cloud-node substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: nightly _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: system diff --git a/ci/export/system-presubmit-node14.yaml b/ci/export/system-presubmit-node20.yaml similarity index 87% rename from ci/export/system-presubmit-node14.yaml rename to ci/export/system-presubmit-node20.yaml index 39d28b48e7d..3ddc698b51e 100644 --- a/ci/export/system-presubmit-node14.yaml +++ b/ci/export/system-presubmit-node20.yaml @@ -1,5 +1,5 @@ createTime: '2022-06-22T20:37:14.244765001Z' -description: Presubmit build with node 18 +description: Presubmit build with node 20 filename: ci/cloudbuild.yaml github: name: google-cloud-node @@ -9,10 +9,11 @@ github: commentControl: COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY id: 28cdf776-546a-430e-b5ed-94cbbbcf493f includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS -name: system-presubmit-node18 +name: system-presubmit-node20 resourceName: projects/long-door-651/locations/global/triggers/28cdf776-546a-430e-b5ed-94cbbbcf493f serviceAccount: projects/long-door-651/serviceAccounts/kokoro-system-test@long-door-651.iam.gserviceaccount.com substitutions: + _NODE_VERSION: "20" _BUILD_TYPE: presubmit _LOGS_BUCKET: cloud-node-public-logs _TEST_TYPE: system diff --git a/ci/export_triggers.sh b/ci/export_triggers.sh index 7a00b61a5a8..e7b842c1a7d 100755 --- a/ci/export_triggers.sh +++ b/ci/export_triggers.sh @@ -21,7 +21,7 @@ set -eo pipefail NODE_VERSIONS=( - "18" + "20" ) echo "change directory to the project root" diff --git a/ci/import_triggers.sh b/ci/import_triggers.sh index 2e01e366913..7d3a04bd8f4 100755 --- a/ci/import_triggers.sh +++ b/ci/import_triggers.sh @@ -21,7 +21,7 @@ set -eo pipefail NODE_VERSIONS=( - "18" + "20" ) echo "change directory to the project root" diff --git a/containers/node-bootstrap-container/Dockerfile b/containers/node-bootstrap-container/Dockerfile index eba978e6c6d..ca85c7d3a71 100644 --- a/containers/node-bootstrap-container/Dockerfile +++ b/containers/node-bootstrap-container/Dockerfile @@ -14,13 +14,13 @@ # Use a multi-stage docker build to limit production dependencies. -# Use the official lightweight Node.js 18 image. +# Use the official lightweight Node.js 20 image. # https://hub.docker.com/_/node FROM golang:1.22-alpine as gobuild RUN go install github.com/bazelbuild/buildtools/buildozer@latest -FROM node:18-slim as nodebuild +FROM node:20-slim as nodebuild COPY package*.json /