This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
The following commit(s) were added to refs/heads/main by this push:
new 303f6e5b3 refactor(services/libsql): Migrate libsql task to new
behavior test planner (#3363)
303f6e5b3 is described below
commit 303f6e5b3d93dde690e7afc80dbb2bb4cb532a82
Author: Nadeshiko Manju <[email protected]>
AuthorDate: Fri Nov 3 20:57:11 2023 +0800
refactor(services/libsql): Migrate libsql task to new behavior test planner
(#3363)
* refactor(services/libsql): Migrate libsql task to new behavior test
planner
Signed-off-by: Manjusaka <[email protected]>
* Update code
Signed-off-by: Manjusaka <[email protected]>
---------
Signed-off-by: Manjusaka <[email protected]>
---
.github/scripts/behavior_test/plan.py | 1 -
.github/services/libsql/libsql-auth/action.yml | 57 +++++++++++
.github/services/libsql/libsql/action.yml | 55 +++++++++++
.github/workflows/service_test_libsql.yml | 132 -------------------------
bindings/java/Cargo.toml | 3 +
bindings/nodejs/Cargo.toml | 2 +
bindings/python/Cargo.toml | 2 +
7 files changed, 119 insertions(+), 133 deletions(-)
diff --git a/.github/scripts/behavior_test/plan.py
b/.github/scripts/behavior_test/plan.py
index d417a25d8..6c3e64448 100755
--- a/.github/scripts/behavior_test/plan.py
+++ b/.github/scripts/behavior_test/plan.py
@@ -162,7 +162,6 @@ def calculate_hint(changed_files: list[str]) -> Hint:
hint.binding_python = True
hint.binding_nodejs = True
hint.services.add(match.group(1))
-
return hint
diff --git a/.github/services/libsql/libsql-auth/action.yml
b/.github/services/libsql/libsql-auth/action.yml
new file mode 100644
index 000000000..3916fb5c2
--- /dev/null
+++ b/.github/services/libsql/libsql-auth/action.yml
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: libsql-auth
+description: 'Behavior test for libsql auth'
+
+runs:
+ using: "composite"
+ steps:
+ - name: Setup libsql
+ shell: bash
+ working-directory: fixtures/libsql
+ run: docker-compose -f docker-compose-auth.yml up -d
+ - name: Create table
+ shell: bash
+ working-directory: core
+ run: |
+ curl --location '127.0.0.1:8080/v2/pipeline' \
+ --header 'Content-Type: application/json' \
+ --header 'Authorization: Bearer
eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjc5ODg0ODM4Mjd9.MatB2aLnPFusagqH2RMoVExP37o2GFLmaJbmd52OdLtAehRNeqeJZPrefP1t2GBFidApUTLlaBRL6poKq_s3CQ'
\
+ --data '{
+ "baton": null,
+ "requests": [
+ {
+ "type": "execute",
+ "stmt": {
+ "sql": "CREATE TABLE IF NOT EXISTS `data` (`key`
TEXT PRIMARY KEY NOT NULL CHECK(length(key) <= 255),`data` BLOB);",
+ "args": [],
+ "want_rows": true
+ }
+ }
+ ]
+ }'
+ - name: Setup
+ shell: bash
+ run: |
+ cat << EOF >> $GITHUB_ENV
+ OPENDAL_LIBSQL_CONNECTION_STRING=http://127.0.0.1:8080
+
OPENDAL_LIBSQL_AUTH_TOKEN=eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjc5ODg0ODM4Mjd9.MatB2aLnPFusagqH2RMoVExP37o2GFLmaJbmd52OdLtAehRNeqeJZPrefP1t2GBFidApUTLlaBRL6poKq_s3CQ
+ OPENDAL_LIBSQL_TABLE=data
+ OPENDAL_LIBSQL_KEY_FIELD=key
+ OPENDAL_LIBSQL_VALUE_FIELD=data
+ EOF
\ No newline at end of file
diff --git a/.github/services/libsql/libsql/action.yml
b/.github/services/libsql/libsql/action.yml
new file mode 100644
index 000000000..00c5bae42
--- /dev/null
+++ b/.github/services/libsql/libsql/action.yml
@@ -0,0 +1,55 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: libsql
+description: 'Behavior test for libsql'
+
+runs:
+ using: "composite"
+ steps:
+ - name: Setup libsql
+ shell: bash
+ working-directory: fixtures/libsql
+ run: docker-compose -f docker-compose.yml up -d
+ - name: Create table
+ shell: bash
+ working-directory: core
+ run: |
+ curl --location '127.0.0.1:8080/v2/pipeline' \
+ --header 'Content-Type: application/json' \
+ --data '{
+ "baton": null,
+ "requests": [
+ {
+ "type": "execute",
+ "stmt": {
+ "sql": "CREATE TABLE IF NOT EXISTS `data` (`key`
TEXT PRIMARY KEY NOT NULL CHECK(length(key) <= 255),`data` BLOB);",
+ "args": [],
+ "want_rows": true
+ }
+ }
+ ]
+ }'
+ - name: Setup
+ shell: bash
+ run: |
+ cat << EOF >> $GITHUB_ENV
+ OPENDAL_LIBSQL_CONNECTION_STRING=http://127.0.0.1:8080
+ OPENDAL_LIBSQL_TABLE=data
+ OPENDAL_LIBSQL_KEY_FIELD=key
+ OPENDAL_LIBSQL_VALUE_FIELD=data
+ EOF
\ No newline at end of file
diff --git a/.github/workflows/service_test_libsql.yml
b/.github/workflows/service_test_libsql.yml
deleted file mode 100644
index 651f1d068..000000000
--- a/.github/workflows/service_test_libsql.yml
+++ /dev/null
@@ -1,132 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-name: Service Test Libsql
-
-on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
- paths:
- - "core/src/**"
- - "core/tests/**"
- - "!core/src/docs/**"
- - "!core/src/services/**"
- - "core/src/services/libsql/**"
- - ".github/workflows/service_test_libsql.yml"
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
- cancel-in-progress: true
-
-jobs:
- libsql:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
- - name: Setup libsql Server
- shell: bash
- working-directory: fixtures/libsql
- run: docker-compose -f docker-compose.yml up -d
-
- - name: Setup Rust toolchain
- uses: ./.github/actions/setup
- with:
- need-nextest: true
-
- - name: Create table
- shell: bash
- working-directory: core
- run: |
- curl --location '127.0.0.1:8080/v2/pipeline' \
- --header 'Content-Type: application/json' \
- --data '{
- "baton": null,
- "requests": [
- {
- "type": "execute",
- "stmt": {
- "sql": "CREATE TABLE IF NOT EXISTS `data` (`key`
TEXT PRIMARY KEY NOT NULL CHECK(length(key) <= 255),`data` BLOB);",
- "args": [],
- "want_rows": true
- }
- }
- ]
- }'
-
- - name: Test
- shell: bash
- working-directory: core
- run: cargo nextest run behavior --features tests,services-libsql
- env:
- OPENDAL_TEST: libsql
- OPENDAL_LIBSQL_CONNECTION_STRING: http://127.0.0.1:8080
- OPENDAL_LIBSQL_TABLE: data
- OPENDAL_LIBSQL_KEY_FIELD: key
- OPENDAL_LIBSQL_VALUE_FIELD: data
-
- libsql-auth:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
- - name: Setup libsql-auth Server
- shell: bash
- working-directory: fixtures/libsql
- run: docker-compose -f docker-compose-auth.yml up -d
-
- - name: Setup Rust toolchain
- uses: ./.github/actions/setup
- with:
- need-nextest: true
-
- - name: Create table
- shell: bash
- working-directory: core
- run: |
- curl --location '127.0.0.1:8080/v2/pipeline' \
- --header 'Content-Type: application/json' \
- --header 'Authorization: Bearer
eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjc5ODg0ODM4Mjd9.MatB2aLnPFusagqH2RMoVExP37o2GFLmaJbmd52OdLtAehRNeqeJZPrefP1t2GBFidApUTLlaBRL6poKq_s3CQ'
\
- --data '{
- "baton": null,
- "requests": [
- {
- "type": "execute",
- "stmt": {
- "sql": "CREATE TABLE IF NOT EXISTS `data` (`key`
TEXT PRIMARY KEY NOT NULL CHECK(length(key) <= 255),`data` BLOB);",
- "args": [],
- "want_rows": true
- }
- }
- ]
- }'
-
- - name: Test
- shell: bash
- working-directory: core
- run: cargo nextest run behavior --features tests,services-libsql
- env:
- OPENDAL_TEST: libsql
- OPENDAL_LIBSQL_CONNECTION_STRING: http://127.0.0.1:8080
- OPENDAL_LIBSQL_AUTH_TOKEN:
eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJleHAiOjc5ODg0ODM4Mjd9.MatB2aLnPFusagqH2RMoVExP37o2GFLmaJbmd52OdLtAehRNeqeJZPrefP1t2GBFidApUTLlaBRL6poKq_s3CQ
- OPENDAL_LIBSQL_TABLE: data
- OPENDAL_LIBSQL_KEY_FIELD: key
- OPENDAL_LIBSQL_VALUE_FIELD: data
diff --git a/bindings/java/Cargo.toml b/bindings/java/Cargo.toml
index 2553712f3..87c7ca2c7 100644
--- a/bindings/java/Cargo.toml
+++ b/bindings/java/Cargo.toml
@@ -82,6 +82,7 @@ services-all = [
"services-mongodb",
"services-sqlite",
"services-azfile",
+ "services-libsql",
]
# Default services provided by opendal.
@@ -129,6 +130,8 @@ services-supabase = ["opendal/services-supabase"]
services-tikv = ["opendal/services-tikv"]
services-vercel-artifacts = ["opendal/services-vercel-artifacts"]
services-wasabi = ["opendal/services-wasabi"]
+services-libsql = ["opendal/services-libsql"]
+
[dependencies]
anyhow = "1.0.71"
diff --git a/bindings/nodejs/Cargo.toml b/bindings/nodejs/Cargo.toml
index 4024a9f5e..4460e7826 100644
--- a/bindings/nodejs/Cargo.toml
+++ b/bindings/nodejs/Cargo.toml
@@ -78,6 +78,7 @@ services-all = [
"services-wasabi",
"services-mongodb",
"services-sqlite",
+ "services-libsql"
]
# Default services provided by opendal.
@@ -125,6 +126,7 @@ services-supabase = ["opendal/services-supabase"]
services-tikv = ["opendal/services-tikv"]
services-vercel-artifacts = ["opendal/services-vercel-artifacts"]
services-wasabi = ["opendal/services-wasabi"]
+services-libsql = ["opendal/services-libsql"]
[lib]
crate-type = ["cdylib"]
diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml
index c5f778dd9..7ace6adb4 100644
--- a/bindings/python/Cargo.toml
+++ b/bindings/python/Cargo.toml
@@ -78,6 +78,7 @@ services-all = [
"services-wasabi",
"services-mongodb",
"services-sqlite",
+ "services-libsql"
]
# Default services provided by opendal.
@@ -125,6 +126,7 @@ services-supabase = ["opendal/services-supabase"]
services-tikv = ["opendal/services-tikv"]
services-vercel-artifacts = ["opendal/services-vercel-artifacts"]
services-wasabi = ["opendal/services-wasabi"]
+services-libsql = ["opendal/services-libsql"]
[lib]
crate-type = ["cdylib"]