From cd587db9dfcaf6d097c9bd0607d6c91c817d3ac9 Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Tue, 1 Apr 2025 12:03:12 +1100 Subject: [PATCH 1/8] chore(ci): migrate mssql samples to new ci --- .github/config/nodejs-dev.jsonc | 4 ++-- .github/config/nodejs.jsonc | 4 ++-- cloud-sql/sqlserver/mssql/ci-setup.json | 14 ++++++++++++++ cloud-sql/sqlserver/mssql/package.json | 3 ++- cloud-sql/sqlserver/tedious/ci-setup.json | 14 ++++++++++++++ cloud-sql/sqlserver/tedious/package.json | 3 ++- 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 cloud-sql/sqlserver/mssql/ci-setup.json create mode 100644 cloud-sql/sqlserver/tedious/ci-setup.json diff --git a/.github/config/nodejs-dev.jsonc b/.github/config/nodejs-dev.jsonc index b2192a0525..d0476afe1e 100644 --- a/.github/config/nodejs-dev.jsonc +++ b/.github/config/nodejs-dev.jsonc @@ -101,8 +101,8 @@ "batch", "cloud-language", "cloud-sql/mysql/mysql", - "cloud-sql/mysql/mysql2", - "cloud-sql/postgres/knex", + "cloud-sql/sqlserver/mssql", + "cloud-sql/sqlserver/tedious", "cloud-tasks/snippets", "cloud-tasks/tutorial-gcf/app", "cloud-tasks/tutorial-gcf/function", diff --git a/.github/config/nodejs.jsonc b/.github/config/nodejs.jsonc index da7625698a..6421a31c19 100644 --- a/.github/config/nodejs.jsonc +++ b/.github/config/nodejs.jsonc @@ -77,8 +77,8 @@ // TODO: fix these "ai-platform/snippets", // PERMISSION_DENIED: Permission denied: Consumer 'projects/undefined' has been suspended. "automl", // (untested) FAILED_PRECONDITION: Google Cloud AutoML Natural Language was retired on March 15, 2024. Please migrate to Vertex AI instead - "cloud-sql/sqlserver/mssql", // (untested) TypeError: The "config.server" property is required and must be of type string. - "cloud-sql/sqlserver/tedious", // (untested) TypeError: The "config.server" property is required and must be of type string. + "cloud-sql/mysql/mysql2", // (untested) Error: Cannot find module './connect-connector-with-iam-authn.js' + "cloud-sql/postgres/knex", // (untested) CloudSQLConnectorError: Malformed instance connection name provided: expected format of "PROJECT:REGION:INSTANCE", got undefined "compute", // GoogleError: The resource 'projects/long-door-651/zones/us-central1-a/disks/disk-from-pool-name' was not found "dataproc", // GoogleError: Error submitting create cluster request: Multiple validation errors "datastore/functions", // [ERR_REQUIRE_ESM]: require() of ES Module diff --git a/cloud-sql/sqlserver/mssql/ci-setup.json b/cloud-sql/sqlserver/mssql/ci-setup.json new file mode 100644 index 0000000000..0096fb06cb --- /dev/null +++ b/cloud-sql/sqlserver/mssql/ci-setup.json @@ -0,0 +1,14 @@ +{ + "env": { + "INSTANCE_HOST": "127.0.0.1", + "INSTANCE_CONNECTION_NAME": "nodejs-docs-samples-tests:us-central1:sql-server-ci", + "UNIX_SOCKET_DIR": "tmp/cloudsql", + "CLOUD_SQL_CONNECTION_NAME": "$INSTANCE_CONNECTION_NAME", + "INSTANCE_UNIX_SOCKET": "$UNIX_SOCKET_DIR/$INSTANCE_CONNECTION_NAME", + "DB_NAME": "kokoro_ci", + "DB_USER": "kokoro_ci" + }, + "secrets": { + "DB_PASS": "nodejs-docs-samples-tests/nodejs-docs-samples-sql-password" + } + } diff --git a/cloud-sql/sqlserver/mssql/package.json b/cloud-sql/sqlserver/mssql/package.json index c048ae73a4..f1831404cc 100644 --- a/cloud-sql/sqlserver/mssql/package.json +++ b/cloud-sql/sqlserver/mssql/package.json @@ -13,7 +13,8 @@ }, "scripts": { "start": "node server/server.js", - "system-test": "c8 mocha -p -j 2 test/*.test.js --timeout=60000 --exit", + "proxy": "$GITHUB_WORKSPACE/.github/workflows/utils/sql-proxy.sh", + "system-test": "npm run proxy -- c8 mocha -p -j 2 test/*.test.js --timeout=60000 --exit", "test": "npm run system-test" }, "dependencies": { diff --git a/cloud-sql/sqlserver/tedious/ci-setup.json b/cloud-sql/sqlserver/tedious/ci-setup.json new file mode 100644 index 0000000000..0096fb06cb --- /dev/null +++ b/cloud-sql/sqlserver/tedious/ci-setup.json @@ -0,0 +1,14 @@ +{ + "env": { + "INSTANCE_HOST": "127.0.0.1", + "INSTANCE_CONNECTION_NAME": "nodejs-docs-samples-tests:us-central1:sql-server-ci", + "UNIX_SOCKET_DIR": "tmp/cloudsql", + "CLOUD_SQL_CONNECTION_NAME": "$INSTANCE_CONNECTION_NAME", + "INSTANCE_UNIX_SOCKET": "$UNIX_SOCKET_DIR/$INSTANCE_CONNECTION_NAME", + "DB_NAME": "kokoro_ci", + "DB_USER": "kokoro_ci" + }, + "secrets": { + "DB_PASS": "nodejs-docs-samples-tests/nodejs-docs-samples-sql-password" + } + } diff --git a/cloud-sql/sqlserver/tedious/package.json b/cloud-sql/sqlserver/tedious/package.json index 897a5bc7a5..b4a734c31d 100644 --- a/cloud-sql/sqlserver/tedious/package.json +++ b/cloud-sql/sqlserver/tedious/package.json @@ -13,7 +13,8 @@ }, "scripts": { "start": "node server/server.js", - "system-test": "c8 mocha -p -j 2 test/*.test.js --timeout=60000 --exit", + "proxy": "$GITHUB_WORKSPACE/.github/workflows/utils/sql-proxy.sh", + "system-test": "npm run proxy -- c8 mocha -p -j 2 test/*.test.js --timeout=60000 --exit", "test": "npm run system-test" }, "dependencies": { From ad6b28f0f8c74fe7339a71a13021473d1810385a Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Mon, 7 Apr 2025 10:43:28 +1000 Subject: [PATCH 2/8] rebase config --- .github/config/nodejs.jsonc | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/config/nodejs.jsonc b/.github/config/nodejs.jsonc index 6421a31c19..e919712d8f 100644 --- a/.github/config/nodejs.jsonc +++ b/.github/config/nodejs.jsonc @@ -77,8 +77,6 @@ // TODO: fix these "ai-platform/snippets", // PERMISSION_DENIED: Permission denied: Consumer 'projects/undefined' has been suspended. "automl", // (untested) FAILED_PRECONDITION: Google Cloud AutoML Natural Language was retired on March 15, 2024. Please migrate to Vertex AI instead - "cloud-sql/mysql/mysql2", // (untested) Error: Cannot find module './connect-connector-with-iam-authn.js' - "cloud-sql/postgres/knex", // (untested) CloudSQLConnectorError: Malformed instance connection name provided: expected format of "PROJECT:REGION:INSTANCE", got undefined "compute", // GoogleError: The resource 'projects/long-door-651/zones/us-central1-a/disks/disk-from-pool-name' was not found "dataproc", // GoogleError: Error submitting create cluster request: Multiple validation errors "datastore/functions", // [ERR_REQUIRE_ESM]: require() of ES Module From 235ce5fb829fdeb62af07438a5fe96974a6c34f8 Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Mon, 7 Apr 2025 12:01:08 +1000 Subject: [PATCH 3/8] fix config --- .github/config/nodejs-dev.jsonc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/config/nodejs-dev.jsonc b/.github/config/nodejs-dev.jsonc index d0476afe1e..76805628ea 100644 --- a/.github/config/nodejs-dev.jsonc +++ b/.github/config/nodejs-dev.jsonc @@ -101,6 +101,8 @@ "batch", "cloud-language", "cloud-sql/mysql/mysql", + "cloud-sql/mysql/mysql2", + "cloud-sql/postgres/knex", "cloud-sql/sqlserver/mssql", "cloud-sql/sqlserver/tedious", "cloud-tasks/snippets", From 9000b8abe07788c0af17d2eef95232afcc6fb03a Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Mon, 7 Apr 2025 12:03:07 +1000 Subject: [PATCH 4/8] set private_ip variable (proxy fun) --- cloud-sql/sqlserver/tedious/ci-setup.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cloud-sql/sqlserver/tedious/ci-setup.json b/cloud-sql/sqlserver/tedious/ci-setup.json index 0096fb06cb..29c2898bf9 100644 --- a/cloud-sql/sqlserver/tedious/ci-setup.json +++ b/cloud-sql/sqlserver/tedious/ci-setup.json @@ -6,7 +6,8 @@ "CLOUD_SQL_CONNECTION_NAME": "$INSTANCE_CONNECTION_NAME", "INSTANCE_UNIX_SOCKET": "$UNIX_SOCKET_DIR/$INSTANCE_CONNECTION_NAME", "DB_NAME": "kokoro_ci", - "DB_USER": "kokoro_ci" + "DB_USER": "kokoro_ci", + "PRIVATE_IP": "1" }, "secrets": { "DB_PASS": "nodejs-docs-samples-tests/nodejs-docs-samples-sql-password" From f63a5fa6cf1c4bb0d530b846b3859dcb23aa26c9 Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Mon, 7 Apr 2025 12:40:08 +1000 Subject: [PATCH 5/8] debugging --- cloud-sql/sqlserver/tedious/ci-setup.json | 2 +- cloud-sql/sqlserver/tedious/connect-tcp.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cloud-sql/sqlserver/tedious/ci-setup.json b/cloud-sql/sqlserver/tedious/ci-setup.json index 29c2898bf9..1c9ba34b96 100644 --- a/cloud-sql/sqlserver/tedious/ci-setup.json +++ b/cloud-sql/sqlserver/tedious/ci-setup.json @@ -7,7 +7,7 @@ "INSTANCE_UNIX_SOCKET": "$UNIX_SOCKET_DIR/$INSTANCE_CONNECTION_NAME", "DB_NAME": "kokoro_ci", "DB_USER": "kokoro_ci", - "PRIVATE_IP": "1" + "PRIVATE_IP": "true" }, "secrets": { "DB_PASS": "nodejs-docs-samples-tests/nodejs-docs-samples-sql-password" diff --git a/cloud-sql/sqlserver/tedious/connect-tcp.js b/cloud-sql/sqlserver/tedious/connect-tcp.js index fb8c928903..b13a04847a 100644 --- a/cloud-sql/sqlserver/tedious/connect-tcp.js +++ b/cloud-sql/sqlserver/tedious/connect-tcp.js @@ -48,6 +48,7 @@ const connectWithTcpSocket = async config => { // using the Cloud SQL Proxy, configure encrypted connection. if (process.env.PRIVATE_IP === '1' || process.env.PRIVATE_IP === 'true') { dbConfig.options.encrypt = true; + dbConfig.options.private = true; } // [START cloud_sql_sqlserver_tedious_connect_tcp] From 1a936f1092631eed494e688c4877221f036e32c5 Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Mon, 7 Apr 2025 12:47:49 +1000 Subject: [PATCH 6/8] debug --- cloud-sql/sqlserver/tedious/connect-tcp.js | 1 + 1 file changed, 1 insertion(+) diff --git a/cloud-sql/sqlserver/tedious/connect-tcp.js b/cloud-sql/sqlserver/tedious/connect-tcp.js index b13a04847a..d183f5ec0c 100644 --- a/cloud-sql/sqlserver/tedious/connect-tcp.js +++ b/cloud-sql/sqlserver/tedious/connect-tcp.js @@ -49,6 +49,7 @@ const connectWithTcpSocket = async config => { if (process.env.PRIVATE_IP === '1' || process.env.PRIVATE_IP === 'true') { dbConfig.options.encrypt = true; dbConfig.options.private = true; + dbConfig.options.server = "0.0.0.0"; } // [START cloud_sql_sqlserver_tedious_connect_tcp] From bfc0eae285c9624a6a9cce4c59334cbe7f844082 Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Mon, 7 Apr 2025 13:17:47 +1000 Subject: [PATCH 7/8] since we're dealing with different tests, try this --- cloud-sql/sqlserver/tedious/ci-setup.json | 3 +-- cloud-sql/sqlserver/tedious/test/server.test.js | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cloud-sql/sqlserver/tedious/ci-setup.json b/cloud-sql/sqlserver/tedious/ci-setup.json index 1c9ba34b96..0096fb06cb 100644 --- a/cloud-sql/sqlserver/tedious/ci-setup.json +++ b/cloud-sql/sqlserver/tedious/ci-setup.json @@ -6,8 +6,7 @@ "CLOUD_SQL_CONNECTION_NAME": "$INSTANCE_CONNECTION_NAME", "INSTANCE_UNIX_SOCKET": "$UNIX_SOCKET_DIR/$INSTANCE_CONNECTION_NAME", "DB_NAME": "kokoro_ci", - "DB_USER": "kokoro_ci", - "PRIVATE_IP": "true" + "DB_USER": "kokoro_ci" }, "secrets": { "DB_PASS": "nodejs-docs-samples-tests/nodejs-docs-samples-sql-password" diff --git a/cloud-sql/sqlserver/tedious/test/server.test.js b/cloud-sql/sqlserver/tedious/test/server.test.js index edd1b45d1c..7c64a62260 100644 --- a/cloud-sql/sqlserver/tedious/test/server.test.js +++ b/cloud-sql/sqlserver/tedious/test/server.test.js @@ -24,10 +24,12 @@ const serverConnector = require(SAMPLE_PATH); const _instance_connect_backup = process.env.INSTANCE_CONNECTION_NAME; delete process.env.INSTANCE_CONNECTION_NAME; +process.env.PRIVATE_IP = "true" const serverTcp = require(SAMPLE_PATH); process.env.INSTANCE_CONNECTION_NAME = _instance_connect_backup; +process.env.PRIVATE_IP = "" after(() => { serverTcp.close(); From e271c639e70f6c582b5671ce581be66097f50da0 Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Tue, 8 Apr 2025 13:17:09 +1000 Subject: [PATCH 8/8] revert tedious tests which is tedious --- .github/config/nodejs-dev.jsonc | 1 - .github/config/nodejs.jsonc | 1 + cloud-sql/sqlserver/tedious/ci-setup.json | 14 -------------- cloud-sql/sqlserver/tedious/connect-tcp.js | 2 -- cloud-sql/sqlserver/tedious/package.json | 3 +-- cloud-sql/sqlserver/tedious/test/server.test.js | 2 -- 6 files changed, 2 insertions(+), 21 deletions(-) delete mode 100644 cloud-sql/sqlserver/tedious/ci-setup.json diff --git a/.github/config/nodejs-dev.jsonc b/.github/config/nodejs-dev.jsonc index 76805628ea..c8ca78b18b 100644 --- a/.github/config/nodejs-dev.jsonc +++ b/.github/config/nodejs-dev.jsonc @@ -104,7 +104,6 @@ "cloud-sql/mysql/mysql2", "cloud-sql/postgres/knex", "cloud-sql/sqlserver/mssql", - "cloud-sql/sqlserver/tedious", "cloud-tasks/snippets", "cloud-tasks/tutorial-gcf/app", "cloud-tasks/tutorial-gcf/function", diff --git a/.github/config/nodejs.jsonc b/.github/config/nodejs.jsonc index e919712d8f..b8bc67ffcb 100644 --- a/.github/config/nodejs.jsonc +++ b/.github/config/nodejs.jsonc @@ -77,6 +77,7 @@ // TODO: fix these "ai-platform/snippets", // PERMISSION_DENIED: Permission denied: Consumer 'projects/undefined' has been suspended. "automl", // (untested) FAILED_PRECONDITION: Google Cloud AutoML Natural Language was retired on March 15, 2024. Please migrate to Vertex AI instead + "cloud-sql/sqlserver/tedious", // (untested) TypeError: The "config.server" property is required and must be of type string. "compute", // GoogleError: The resource 'projects/long-door-651/zones/us-central1-a/disks/disk-from-pool-name' was not found "dataproc", // GoogleError: Error submitting create cluster request: Multiple validation errors "datastore/functions", // [ERR_REQUIRE_ESM]: require() of ES Module diff --git a/cloud-sql/sqlserver/tedious/ci-setup.json b/cloud-sql/sqlserver/tedious/ci-setup.json deleted file mode 100644 index 0096fb06cb..0000000000 --- a/cloud-sql/sqlserver/tedious/ci-setup.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "env": { - "INSTANCE_HOST": "127.0.0.1", - "INSTANCE_CONNECTION_NAME": "nodejs-docs-samples-tests:us-central1:sql-server-ci", - "UNIX_SOCKET_DIR": "tmp/cloudsql", - "CLOUD_SQL_CONNECTION_NAME": "$INSTANCE_CONNECTION_NAME", - "INSTANCE_UNIX_SOCKET": "$UNIX_SOCKET_DIR/$INSTANCE_CONNECTION_NAME", - "DB_NAME": "kokoro_ci", - "DB_USER": "kokoro_ci" - }, - "secrets": { - "DB_PASS": "nodejs-docs-samples-tests/nodejs-docs-samples-sql-password" - } - } diff --git a/cloud-sql/sqlserver/tedious/connect-tcp.js b/cloud-sql/sqlserver/tedious/connect-tcp.js index d183f5ec0c..fb8c928903 100644 --- a/cloud-sql/sqlserver/tedious/connect-tcp.js +++ b/cloud-sql/sqlserver/tedious/connect-tcp.js @@ -48,8 +48,6 @@ const connectWithTcpSocket = async config => { // using the Cloud SQL Proxy, configure encrypted connection. if (process.env.PRIVATE_IP === '1' || process.env.PRIVATE_IP === 'true') { dbConfig.options.encrypt = true; - dbConfig.options.private = true; - dbConfig.options.server = "0.0.0.0"; } // [START cloud_sql_sqlserver_tedious_connect_tcp] diff --git a/cloud-sql/sqlserver/tedious/package.json b/cloud-sql/sqlserver/tedious/package.json index b4a734c31d..897a5bc7a5 100644 --- a/cloud-sql/sqlserver/tedious/package.json +++ b/cloud-sql/sqlserver/tedious/package.json @@ -13,8 +13,7 @@ }, "scripts": { "start": "node server/server.js", - "proxy": "$GITHUB_WORKSPACE/.github/workflows/utils/sql-proxy.sh", - "system-test": "npm run proxy -- c8 mocha -p -j 2 test/*.test.js --timeout=60000 --exit", + "system-test": "c8 mocha -p -j 2 test/*.test.js --timeout=60000 --exit", "test": "npm run system-test" }, "dependencies": { diff --git a/cloud-sql/sqlserver/tedious/test/server.test.js b/cloud-sql/sqlserver/tedious/test/server.test.js index 7c64a62260..edd1b45d1c 100644 --- a/cloud-sql/sqlserver/tedious/test/server.test.js +++ b/cloud-sql/sqlserver/tedious/test/server.test.js @@ -24,12 +24,10 @@ const serverConnector = require(SAMPLE_PATH); const _instance_connect_backup = process.env.INSTANCE_CONNECTION_NAME; delete process.env.INSTANCE_CONNECTION_NAME; -process.env.PRIVATE_IP = "true" const serverTcp = require(SAMPLE_PATH); process.env.INSTANCE_CONNECTION_NAME = _instance_connect_backup; -process.env.PRIVATE_IP = "" after(() => { serverTcp.close();