diff --git a/.github/scripts/check-engines-client.sh b/.github/scripts/check-engines-client.sh index 05507a4d027e..b75607d15a6c 100644 --- a/.github/scripts/check-engines-client.sh +++ b/.github/scripts/check-engines-client.sh @@ -144,6 +144,9 @@ elif [ $CLIENT_ENGINE_TYPE == "wasm" ]; then os_name=notset ;; esac +elif [ $CLIENT_ENGINE_TYPE == "client" ]; then + echo "Client engine detected, skipping QE check" + exit 0 elif [ $CLIENT_ENGINE_TYPE == "" ]; then echo "Accelerate: Enabled" else diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8e6669a75580..142ea608c872 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -144,8 +144,34 @@ jobs: - turso-web-node-basic-esm - turso-web-vercel-nextjs - tidb-node-basic - clientEngine: ['library'] + clientEngine: [library, client] os: [ubuntu-22.04] + exclude: + - combo: neon-http-lambda-basic + clientEngine: client + - combo: neon-lambda-basic + clientEngine: client + - combo: planetscale-lambda-basic + clientEngine: client + - combo: pg-lambda-basic + clientEngine: client + - combo: turso-web-lambda-basic + clientEngine: client + - combo: turso-web-lambda-basic + clientEngine: client + - combo: neon-http-vercel-nextjs + clientEngine: client + - combo: neon-vercel-nextjs + clientEngine: client + - combo: planetscale-vercel-nextjs + clientEngine: client + - combo: pg-vercel-nextjs + clientEngine: client + - combo: turso-vercel-nextjs + clientEngine: client + - combo: turso-web-vercel-nextjs + clientEngine: client + runs-on: ${{ matrix.os }} # To avoid race conditions when running tests, we need to avoid concurrency # The tests should not be run concurrently for a given "combo" @@ -172,6 +198,8 @@ jobs: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} DEBUG: 'prisma:driver-adapter*' PRISMA_DISABLE_QUAINT_EXECUTORS: true + PRISMA_CLIENT_ENGINE_TYPE: ${{ matrix.clientEngine }} + # neon http DRIVER_ADAPTERS_NEON_HTTP_LAMBDA_BASIC_DATABASE_URL: ${{ secrets.DRIVER_ADAPTERS_NEON_HTTP_LAMBDA_BASIC_DATABASE_URL }} DRIVER_ADAPTERS_NEON_HTTP_NODE_BASIC_DATABASE_URL: ${{ secrets.DRIVER_ADAPTERS_NEON_HTTP_NODE_BASIC_DATABASE_URL }} @@ -203,15 +231,19 @@ jobs: - uses: pnpm/action-setup@v4.0.0 + - name: Add queryCompiler preview feature when using client engine + if: ${{ matrix.clientEngine == 'client' }} + run: | + find . -name schema.prisma -exec sed -i \ + -e 's/previewFeatures = \["driverAdapters"\]/previewFeatures = ["driverAdapters", "queryCompiler"]/' \ + {} + + - uses: actions/setup-node@v4 with: node-version: 18 cache: 'pnpm' cache-dependency-path: ${{ github.job }}/${{ matrix.combo }}/pnpm-lock.yaml - - name: Define Client Engine Type to test - run: echo "PRISMA_CLIENT_ENGINE_TYPE=${{ matrix.clientEngine }}" >> $GITHUB_ENV - - name: Install Dependencies run: pnpm install diff --git a/driver-adapters/neon-http-lambda-basic/run.sh b/driver-adapters/neon-http-lambda-basic/run.sh index f220bac9afe1..4ca01dbc8b77 100755 --- a/driver-adapters/neon-http-lambda-basic/run.sh +++ b/driver-adapters/neon-http-lambda-basic/run.sh @@ -16,8 +16,11 @@ GENERATED_CLIENT=$(node -e " ") pnpm esbuild index.js --bundle --platform=node --target=node18 --outfile=dist/index.js --format=cjs -cp "$GENERATED_CLIENT"/libquery_engine-rhel-openssl-1.0.x.so.node dist -cp "$GENERATED_CLIENT"/schema.prisma dist +QUERY_ENGINE_LIB="$GENERATED_CLIENT/libquery_engine-rhel-openssl-1.0.x.so.node" +if [ -f "$QUERY_ENGINE_LIB" ]; then + cp "$QUERY_ENGINE_LIB" dist +fi +cp "$GENERATED_CLIENT/schema.prisma" dist zip -rj lambda.zip dist aws lambda update-function-configuration --function-name driver-adapters-neon-http-lambda-basic --runtime nodejs18.x --environment "Variables={DRIVER_ADAPTERS_NEON_HTTP_LAMBDA_BASIC_DATABASE_URL=$DRIVER_ADAPTERS_NEON_HTTP_LAMBDA_BASIC_DATABASE_URL}" --timeout 30 diff --git a/driver-adapters/neon-http-node-basic/package.json b/driver-adapters/neon-http-node-basic/package.json index 4e539bf8cb63..bf3d3ee55c1a 100644 --- a/driver-adapters/neon-http-node-basic/package.json +++ b/driver-adapters/neon-http-node-basic/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "test": "jest index.test.js" + "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js" }, "devDependencies": { "@jest/globals": "29.7.0", diff --git a/driver-adapters/neon-lambda-basic/run.sh b/driver-adapters/neon-lambda-basic/run.sh index 9ca0756bdad0..fa0808ace548 100755 --- a/driver-adapters/neon-lambda-basic/run.sh +++ b/driver-adapters/neon-lambda-basic/run.sh @@ -16,8 +16,11 @@ GENERATED_CLIENT=$(node -e " ") pnpm esbuild index.js --bundle --platform=node --target=node18 --outfile=dist/index.js --format=cjs -cp "$GENERATED_CLIENT"/libquery_engine-rhel-openssl-1.0.x.so.node dist -cp "$GENERATED_CLIENT"/schema.prisma dist +QUERY_ENGINE_LIB="$GENERATED_CLIENT/libquery_engine-rhel-openssl-1.0.x.so.node" +if [ -f "$QUERY_ENGINE_LIB" ]; then + cp "$QUERY_ENGINE_LIB" dist +fi +cp "$GENERATED_CLIENT/schema.prisma" dist zip -rj lambda.zip dist aws lambda update-function-configuration --function-name driver-adapters-neon-lambda-basic --runtime nodejs18.x --environment "Variables={DRIVER_ADAPTERS_NEON_LAMBDA_BASIC_DATABASE_URL=$DRIVER_ADAPTERS_NEON_LAMBDA_BASIC_DATABASE_URL}" --timeout 30 diff --git a/driver-adapters/neon-node-basic/package.json b/driver-adapters/neon-node-basic/package.json index acd290cbdf63..e98ce220f2c1 100644 --- a/driver-adapters/neon-node-basic/package.json +++ b/driver-adapters/neon-node-basic/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "test": "jest index.test.js" + "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js" }, "devDependencies": { "@jest/globals": "29.7.0", diff --git a/driver-adapters/pg-lambda-basic/run.sh b/driver-adapters/pg-lambda-basic/run.sh index 14b41fa629f1..1ef705977d47 100755 --- a/driver-adapters/pg-lambda-basic/run.sh +++ b/driver-adapters/pg-lambda-basic/run.sh @@ -16,8 +16,11 @@ GENERATED_CLIENT=$(node -e " ") pnpm esbuild index.js --bundle --platform=node --target=node18 --outfile=dist/index.js --format=cjs -cp "$GENERATED_CLIENT"/libquery_engine-rhel-openssl-1.0.x.so.node dist -cp "$GENERATED_CLIENT"/schema.prisma dist +QUERY_ENGINE_LIB="$GENERATED_CLIENT/libquery_engine-rhel-openssl-1.0.x.so.node" +if [ -f "$QUERY_ENGINE_LIB" ]; then + cp "$QUERY_ENGINE_LIB" dist +fi +cp "$GENERATED_CLIENT/schema.prisma" dist zip -rj lambda.zip dist aws lambda update-function-configuration --function-name driver-adapters-pg-lambda-basic --runtime nodejs18.x --environment "Variables={DATABASE_URL=$DATABASE_URL}" --timeout 30 diff --git a/driver-adapters/pg-node-basic/package.json b/driver-adapters/pg-node-basic/package.json index 1b247f88881a..b6a9d6df1360 100644 --- a/driver-adapters/pg-node-basic/package.json +++ b/driver-adapters/pg-node-basic/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "test": "jest index.test.js" + "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js" }, "devDependencies": { "@jest/globals": "29.7.0", diff --git a/driver-adapters/planetscale-lambda-basic/run.sh b/driver-adapters/planetscale-lambda-basic/run.sh index e0c33b7983ba..66561532ee68 100755 --- a/driver-adapters/planetscale-lambda-basic/run.sh +++ b/driver-adapters/planetscale-lambda-basic/run.sh @@ -16,8 +16,11 @@ GENERATED_CLIENT=$(node -e " ") pnpm esbuild index.js --bundle --platform=node --target=node18 --outfile=dist/index.js --format=cjs -cp "$GENERATED_CLIENT"/libquery_engine-rhel-openssl-1.0.x.so.node dist -cp "$GENERATED_CLIENT"/schema.prisma dist +QUERY_ENGINE_LIB="$GENERATED_CLIENT/libquery_engine-rhel-openssl-1.0.x.so.node" +if [ -f "$QUERY_ENGINE_LIB" ]; then + cp "$QUERY_ENGINE_LIB" dist +fi +cp "$GENERATED_CLIENT/schema.prisma" dist zip -rj lambda.zip dist aws lambda update-function-configuration --function-name driver-adapters-planetscale-lambda-basic --runtime nodejs18.x --environment "Variables={DATABASE_URL_PLANETSCALE=$DATABASE_URL_PLANETSCALE}" --timeout 30 diff --git a/driver-adapters/planetscale-node-basic/package.json b/driver-adapters/planetscale-node-basic/package.json index 8d2175ff21a6..3cbaf17f60b4 100644 --- a/driver-adapters/planetscale-node-basic/package.json +++ b/driver-adapters/planetscale-node-basic/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "test": "jest index.test.js" + "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js" }, "devDependencies": { "@jest/globals": "29.7.0", diff --git a/driver-adapters/tidb-node-basic/package.json b/driver-adapters/tidb-node-basic/package.json index fcc04a045a83..c7410ff3811f 100644 --- a/driver-adapters/tidb-node-basic/package.json +++ b/driver-adapters/tidb-node-basic/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "test": "jest index.test.js" + "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js" }, "devDependencies": { "@jest/globals": "29.7.0", @@ -12,7 +12,7 @@ }, "dependencies": { "@prisma/client": "6.15.0-dev.25", - "@tidbcloud/prisma-adapter": "git://github.com/jacek-prisma/tidbcloud-prisma-adapter#787abe9", + "@tidbcloud/prisma-adapter": "git://github.com/jacek-prisma/tidbcloud-prisma-adapter#f30891f", "@tidbcloud/serverless": "0.2.0" } } diff --git a/driver-adapters/tidb-node-basic/pnpm-lock.yaml b/driver-adapters/tidb-node-basic/pnpm-lock.yaml index e17c6e641fe1..a84b0b96b41b 100644 --- a/driver-adapters/tidb-node-basic/pnpm-lock.yaml +++ b/driver-adapters/tidb-node-basic/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: 6.15.0-dev.25 version: 6.15.0-dev.25(prisma@6.15.0-dev.25) '@tidbcloud/prisma-adapter': - specifier: git://github.com/jacek-prisma/tidbcloud-prisma-adapter#787abe9 - version: https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/787abe9(@tidbcloud/serverless@0.2.0) + specifier: git://github.com/jacek-prisma/tidbcloud-prisma-adapter#f30891f + version: https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/f30891f(@tidbcloud/serverless@0.2.0) '@tidbcloud/serverless': specifier: 0.2.0 version: 0.2.0 @@ -373,8 +373,11 @@ packages: '@prisma/debug@6.15.0-dev.25': resolution: {integrity: sha512-3M/zaLkmWcx8LW6utSQDP9jEJ6fi4UOAk2DLAnXhJsuxz5P2d8LDyLSDKXMO4H9uWJWk3dwcdJns1KsW3sW6bQ==} - '@prisma/driver-adapter-utils@6.10.0-dev.28': - resolution: {integrity: sha512-cA9SQk/J8Zxev8O9x65X8wtS5jsjF6MjbN0kCq3aORQbNQDxIZ/zdnrQVKp37JIUHKAeowUzpUjh+Hr1RATWEQ==} + '@prisma/debug@6.15.0-dev.23': + resolution: {integrity: sha512-B3lXROS3L2vR+4DvDxE6XnLT78uSERE4ePMZ+gyYZuB7Un69TLl1nt3vYGZO5YNPBvK/aePAskzE5d9XiGmmWg==} + + '@prisma/driver-adapter-utils@6.15.0-dev.23': + resolution: {integrity: sha512-xRDuaUpnEQ/2QI43Y3MedjHohJWn6U5p0KpWNQn4rUFrhORka4+uQJpuecB2N2+xEyYuJvD5QbY4mYIDZQD22g==} '@prisma/engines-version@6.15.0-5.85179d7826409ee107a6ba334b5e305ae3fba9fb': resolution: {integrity: sha512-a/46aK5j6L3ePwilZYEgYDPrhBQ/n4gYjLxT5YncUTJJNRnTCVjPF86QdzUOLRdYjCLfhtZp9aum90W0J+trrg==} @@ -400,9 +403,9 @@ packages: '@standard-schema/spec@1.0.0': resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - '@tidbcloud/prisma-adapter@https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/787abe9': - resolution: {tarball: https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/787abe9} - version: 6.6.0 + '@tidbcloud/prisma-adapter@https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/f30891f': + resolution: {tarball: https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/f30891f} + version: 6.12.0 peerDependencies: '@tidbcloud/serverless': '>= 0.1.0' @@ -1883,13 +1886,13 @@ snapshots: transitivePeerDependencies: - magicast - '@prisma/debug@6.10.0-dev.28': {} + '@prisma/debug@6.15.0-dev.23': {} '@prisma/debug@6.15.0-dev.25': {} - '@prisma/driver-adapter-utils@6.10.0-dev.28': + '@prisma/driver-adapter-utils@6.15.0-dev.23': dependencies: - '@prisma/debug': 6.10.0-dev.28 + '@prisma/debug': 6.15.0-dev.23 '@prisma/engines-version@6.15.0-5.85179d7826409ee107a6ba334b5e305ae3fba9fb': {} @@ -1922,9 +1925,9 @@ snapshots: '@standard-schema/spec@1.0.0': {} - '@tidbcloud/prisma-adapter@https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/787abe9(@tidbcloud/serverless@0.2.0)': + '@tidbcloud/prisma-adapter@https://codeload.github.com/jacek-prisma/tidbcloud-prisma-adapter/tar.gz/f30891f(@tidbcloud/serverless@0.2.0)': dependencies: - '@prisma/driver-adapter-utils': 6.10.0-dev.28 + '@prisma/driver-adapter-utils': 6.15.0-dev.23 '@tidbcloud/serverless': 0.2.0 '@tidbcloud/serverless@0.2.0': {} diff --git a/driver-adapters/turso-node-basic/package.json b/driver-adapters/turso-node-basic/package.json index 5a92d1f9c94b..8941362159c8 100644 --- a/driver-adapters/turso-node-basic/package.json +++ b/driver-adapters/turso-node-basic/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "test": "jest index.test.js" + "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js" }, "devDependencies": { "@jest/globals": "29.7.0", diff --git a/driver-adapters/turso-web-lambda-basic/run.sh b/driver-adapters/turso-web-lambda-basic/run.sh index 6cb53e627006..7d207be5c330 100755 --- a/driver-adapters/turso-web-lambda-basic/run.sh +++ b/driver-adapters/turso-web-lambda-basic/run.sh @@ -16,8 +16,11 @@ GENERATED_CLIENT=$(node -e " ") pnpm esbuild index.js --bundle --platform=node --target=node18 --outfile=dist/index.js --format=cjs -cp "$GENERATED_CLIENT"/libquery_engine-rhel-openssl-1.0.x.so.node dist -cp "$GENERATED_CLIENT"/schema.prisma dist +QUERY_ENGINE_LIB="$GENERATED_CLIENT/libquery_engine-rhel-openssl-1.0.x.so.node" +if [ -f "$QUERY_ENGINE_LIB" ]; then + cp "$QUERY_ENGINE_LIB" dist +fi +cp "$GENERATED_CLIENT/schema.prisma" dist zip -rj lambda.zip dist aws lambda update-function-configuration --function-name driver-adapters-turso-lambda-basic --runtime nodejs18.x --environment "Variables={DRIVER_ADAPTERS_TURSO_LAMBDA_BASIC_DATABASE_URL=$DRIVER_ADAPTERS_TURSO_LAMBDA_BASIC_DATABASE_URL,DRIVER_ADAPTERS_TURSO_LAMBDA_BASIC_TOKEN=$DRIVER_ADAPTERS_TURSO_LAMBDA_BASIC_TOKEN}" --timeout 30 diff --git a/driver-adapters/turso-web-node-basic/package.json b/driver-adapters/turso-web-node-basic/package.json index e5664212bce1..791ffbde15f3 100644 --- a/driver-adapters/turso-web-node-basic/package.json +++ b/driver-adapters/turso-web-node-basic/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "test": "jest index.test.js" + "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js" }, "devDependencies": { "@jest/globals": "29.7.0",