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 9bcb83435 refactor(services/webdav): migrate to test planner for 
webdav (#3379)
9bcb83435 is described below

commit 9bcb83435479e18e9ce90b606dba8bad0cb8019a
Author: yangxiaowei <[email protected]>
AuthorDate: Thu Nov 2 13:33:18 2023 +0900

    refactor(services/webdav): migrate to test planner for webdav (#3379)
    
    * refactor(services/webdav): migrate to test planner for webdav
    
    * fix(services/webdav): user
    
    * fix(services/webdav): nginx_with_redirect ENDPOINT
    
    * feat(services/nexcloud): migrate test planner for nextcloud, owncloud
    
    * fix(services): action for nextcloud, owncloud
    
    * fix(services/webdav): nextcloud, owncloud move into webdav
    
    * fix(fixtures): docker-compose for nextcloud, owncloud
    
    * fix(fixtures): docker-compose for nextcloud, owncloud
    
    * fix(services): webdav tcp > http
    
    * fix(fixtures): docker-compose for nextcloud, owncloud
    
    * fix(fixtures): docker-compose for nextcloud, owncloud
    
    * fix(services/webdav): docker compose file move into webdav folder
    
    * ci(test): Add health check for WebDAV docker compose config for nextcloud 
and owncloud
    
    * ci(test): Add health check for WebDAV docker compose config for nextcloud 
and owncloud
    
    * Update health check for nextcloud
    
    Signed-off-by: Manjusaka <[email protected]>
    
    * Update service file
    
    Signed-off-by: Manjusaka <[email protected]>
    
    ---------
    
    Signed-off-by: Manjusaka <[email protected]>
    Co-authored-by: Manjusaka <[email protected]>
---
 .github/services/webdav/nextcloud/action.yml       |  35 ++++
 .github/services/webdav/nginx/action.yml           |  33 +++
 .../webdav/nginx_with_empty_password/action.yml    |  34 ++++
 .../services/webdav/nginx_with_password/action.yml |  35 ++++
 .../services/webdav/nginx_with_redirect/action.yml |  33 +++
 .github/services/webdav/owncloud/action.yml        |  35 ++++
 .github/workflows/service_test_webdav.yml          | 224 ---------------------
 .../webdav/docker-compose-webdav-nextcloud.yml     |  39 ++++
 fixtures/webdav/docker-compose-webdav-owncloud.yml |  45 +++++
 fixtures/webdav/health-check-nextcloud.sh          |  21 ++
 10 files changed, 310 insertions(+), 224 deletions(-)

diff --git a/.github/services/webdav/nextcloud/action.yml 
b/.github/services/webdav/nextcloud/action.yml
new file mode 100644
index 000000000..16a0db4e7
--- /dev/null
+++ b/.github/services/webdav/nextcloud/action.yml
@@ -0,0 +1,35 @@
+# 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: nextcloud
+description: "Behavior test for nextcloud"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Setup nextcloud
+      shell: bash
+      working-directory: fixtures/webdav
+      run: docker compose -f docker-compose-webdav-nextcloud.yml up -d --wait
+    - name: Setup
+      shell: bash
+      run: |
+        cat << EOF >> $GITHUB_ENV
+        OPENDAL_WEBDAV_ENDPOINT=http://127.0.0.1:8080/remote.php/webdav/
+        OPENDAL_WEBDAV_USERNAME=admin
+        OPENDAL_WEBDAV_PASSWORD=admin
+        EOF
diff --git a/.github/services/webdav/nginx/action.yml 
b/.github/services/webdav/nginx/action.yml
new file mode 100644
index 000000000..0559a076d
--- /dev/null
+++ b/.github/services/webdav/nginx/action.yml
@@ -0,0 +1,33 @@
+# 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: nginx
+description: "Behavior test for webdav in nginx"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Setup webdav in nginx
+      shell: bash
+      working-directory: fixtures/webdav
+      run: docker compose -f docker-compose-webdav.yml up -d --wait
+    - name: Setup
+      shell: bash
+      run: |
+        cat << EOF >> $GITHUB_ENV
+        OPENDAL_WEBDAV_ENDPOINT=http://127.0.0.1:8080
+        EOF
diff --git a/.github/services/webdav/nginx_with_empty_password/action.yml 
b/.github/services/webdav/nginx_with_empty_password/action.yml
new file mode 100644
index 000000000..655e22a53
--- /dev/null
+++ b/.github/services/webdav/nginx_with_empty_password/action.yml
@@ -0,0 +1,34 @@
+# 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: nginx_with_empty_password
+description: "Behavior test for nginx_with_empty_password in nginx"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Setup webdav in nginx_with_empty_password
+      shell: bash
+      working-directory: fixtures/webdav
+      run: docker compose -f docker-compose-webdav-with-empty-passwd.yml up -d 
--wait
+    - name: Setup
+      shell: bash
+      run: |
+        cat << EOF >> $GITHUB_ENV
+        OPENDAL_WEBDAV_ENDPOINT=http://127.0.0.1:8080
+        OPENDAL_WEBDAV_USERNAME=foo
+        EOF
diff --git a/.github/services/webdav/nginx_with_password/action.yml 
b/.github/services/webdav/nginx_with_password/action.yml
new file mode 100644
index 000000000..c550cbba7
--- /dev/null
+++ b/.github/services/webdav/nginx_with_password/action.yml
@@ -0,0 +1,35 @@
+# 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: nginx_with_password
+description: "Behavior test for nginx_with_password in nginx"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Setup webdav in nginx_with_password
+      shell: bash
+      working-directory: fixtures/webdav
+      run: docker compose -f docker-compose-webdav-with-auth.yml up -d --wait
+    - name: Setup
+      shell: bash
+      run: |
+        cat << EOF >> $GITHUB_ENV
+        OPENDAL_WEBDAV_ENDPOINT=http://127.0.0.1:8080
+        OPENDAL_WEBDAV_USERNAME=bar
+        OPENDAL_WEBDAV_PASSWORD=bar
+        EOF
diff --git a/.github/services/webdav/nginx_with_redirect/action.yml 
b/.github/services/webdav/nginx_with_redirect/action.yml
new file mode 100644
index 000000000..2514964f4
--- /dev/null
+++ b/.github/services/webdav/nginx_with_redirect/action.yml
@@ -0,0 +1,33 @@
+# 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: nginx_with_redirect
+description: "Behavior test for nginx_with_redirect in nginx"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Setup webdav in nginx_with_redirect
+      shell: bash
+      working-directory: fixtures/webdav
+      run: docker compose -f docker-compose-webdav.yml up -d --wait
+    - name: Setup
+      shell: bash
+      run: |
+        cat << EOF >> $GITHUB_ENV
+        OPENDAL_WEBDAV_ENDPOINT=http://127.0.0.1:8081
+        EOF
diff --git a/.github/services/webdav/owncloud/action.yml 
b/.github/services/webdav/owncloud/action.yml
new file mode 100644
index 000000000..df838bda3
--- /dev/null
+++ b/.github/services/webdav/owncloud/action.yml
@@ -0,0 +1,35 @@
+# 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: owncloud
+description: "Behavior test for owncloud"
+
+runs:
+  using: "composite"
+  steps:
+    - name: Setup owncloud
+      shell: bash
+      working-directory: fixtures/webdav
+      run: docker compose -f docker-compose-webdav-owncloud.yml up -d --wait
+    - name: Setup
+      shell: bash
+      run: |
+        cat << EOF >> $GITHUB_ENV
+        OPENDAL_WEBDAV_ENDPOINT=http://127.0.0.1:8080/remote.php/webdav/
+        OPENDAL_WEBDAV_USERNAME=admin
+        OPENDAL_WEBDAV_PASSWORD=admin
+        EOF
diff --git a/.github/workflows/service_test_webdav.yml 
b/.github/workflows/service_test_webdav.yml
deleted file mode 100644
index 128932916..000000000
--- a/.github/workflows/service_test_webdav.yml
+++ /dev/null
@@ -1,224 +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 WebDAV
-
-on:
-  push:
-    branches:
-      - main
-  pull_request:
-    branches:
-      - main
-    paths:
-      - "core/src/**"
-      - "core/tests/**"
-      - "!core/src/docs/**"
-      - "!core/src/services/**"
-      - "core/src/services/webdav/**"
-      - ".github/workflows/service_test_webdav.yml"
-      - "fixtures/webdav/**"
-
-concurrency:
-  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
-  cancel-in-progress: true
-
-jobs:
-  nginx:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-
-      - name: Start nginx
-        shell: bash
-        working-directory: fixtures/webdav
-        run: docker compose -f docker-compose-webdav.yml up -d
-
-      - name: Test
-        shell: bash
-        working-directory: core
-        run: cargo nextest run behavior --features tests
-        env:
-          OPENDAL_TEST: webdav
-          OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080
-
-  nginx_with_password:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-
-      - name: Start nginx
-        shell: bash
-        working-directory: fixtures/webdav
-        run: docker compose -f docker-compose-webdav-with-auth.yml up -d
-
-      - name: Test with password
-        shell: bash
-        working-directory: core
-        run: cargo nextest run behavior --features tests
-        env:
-          OPENDAL_TEST: webdav
-          OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080
-          OPENDAL_WEBDAV_USERNAME: bar
-          OPENDAL_WEBDAV_PASSWORD: bar
-
-  nginx_with_empty_password:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-
-      - name: Start nginx
-        shell: bash
-        working-directory: fixtures/webdav
-        run: docker compose -f docker-compose-webdav-with-empty-passwd.yml up 
-d
-
-      - name: Test empty password
-        shell: bash
-        working-directory: core
-        run: cargo nextest run behavior --features tests
-        env:
-          OPENDAL_TEST: webdav
-          OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080
-          OPENDAL_WEBDAV_USERNAME: foo
-
-  nginx_with_redirect:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-
-      - name: Start nginx
-        shell: bash
-        working-directory: fixtures/webdav
-        run: docker compose -f docker-compose-webdav.yml up -d
-
-      - name: Test with redirect
-        shell: bash
-        working-directory: core
-        run: |
-          cargo nextest run behavior --features tests
-        env:
-          OPENDAL_TEST: webdav
-          OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8081
-
-  nextcloud:
-    runs-on: ubuntu-latest
-
-    services:
-      nextcloud:
-        image: nextcloud
-        ports:
-          - 8080:80
-        env:
-          SQLITE_DATABASE: nextcloud
-          NEXTCLOUD_ADMIN_USER: admin
-          NEXTCLOUD_ADMIN_PASSWORD: admin
-          REDIS_HOST: redis
-        options: >-
-          --health-cmd="curl -f http://localhost";
-          --health-interval=10s
-          --health-timeout=5s
-          --health-retries=5
-
-      redis:
-        image: redis
-        options: >-
-          --health-cmd "redis-cli ping"
-          --health-interval 10s
-          --health-timeout 5s
-          --health-retries 5
-
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-
-      - name: Test
-        shell: bash
-        working-directory: core
-        run: |
-          cargo test behavior -j=1
-        env:
-          OPENDAL_TEST: webdav
-          OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080/remote.php/webdav/
-          OPENDAL_WEBDAV_USERNAME: admin
-          OPENDAL_WEBDAV_PASSWORD: admin
-
-  owncloud:
-    runs-on: ubuntu-latest
-
-    services:
-      owncloud:
-        image: owncloud/server
-        ports:
-          - 8080:8080
-        env:
-          ADMIN_USERNAME: admin
-          ADMIN_PASSWORD: admin
-          OWNCLOUD_DOMAIN: localhost:8080
-          OWNCLOUD_TRUSTED_DOMAINS: localhost
-          HTTP_PORT: 8080
-          OWNCLOUD_REDIS_ENABLED: true
-          OWNCLOUD_REDIS_HOST: redis
-        options: >-
-          --health-cmd "/usr/bin/healthcheck"
-          --health-interval 10s
-          --health-timeout 5s
-          --health-retries 5
-
-      redis:
-        image: redis
-        options: >-
-          --health-cmd "redis-cli ping"
-          --health-interval 10s
-          --health-timeout 5s
-          --health-retries 5
-
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust toolchain
-        uses: ./.github/actions/setup
-        with:
-          need-nextest: true
-
-      - name: Test
-        shell: bash
-        working-directory: core
-        run: |
-          cargo test behavior -j=1
-        env:
-          OPENDAL_TEST: webdav
-          OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080/remote.php/webdav/
-          OPENDAL_WEBDAV_USERNAME: admin
-          OPENDAL_WEBDAV_PASSWORD: admin
diff --git a/fixtures/webdav/docker-compose-webdav-nextcloud.yml 
b/fixtures/webdav/docker-compose-webdav-nextcloud.yml
new file mode 100644
index 000000000..4cc031221
--- /dev/null
+++ b/fixtures/webdav/docker-compose-webdav-nextcloud.yml
@@ -0,0 +1,39 @@
+# 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.
+
+version: '3.8'
+
+services:
+  nextcloud:
+    image: nextcloud
+    ports:
+      - "8080:80"
+    volumes:
+      - ./health-check-nextcloud.sh:/health-check.sh
+    environment:
+      SQLITE_DATABASE: nextcloud
+      NEXTCLOUD_ADMIN_USER: admin
+      NEXTCLOUD_ADMIN_PASSWORD: admin
+      REDIS_HOST: redis
+    healthcheck:
+      test: ["CMD-SHELL", "bash", "-c", "/health-check.sh"]
+      interval: 10s
+      timeout: 5s
+      retries: 5
+
+  redis:
+    image: redis
diff --git a/fixtures/webdav/docker-compose-webdav-owncloud.yml 
b/fixtures/webdav/docker-compose-webdav-owncloud.yml
new file mode 100644
index 000000000..1a942f442
--- /dev/null
+++ b/fixtures/webdav/docker-compose-webdav-owncloud.yml
@@ -0,0 +1,45 @@
+# 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.
+
+version: '3.8'
+
+services:
+  owncloud:
+    image: owncloud/server
+    ports:
+      - "8080:8080"
+    environment:
+      ADMIN_USERNAME: admin
+      ADMIN_PASSWORD: admin
+      OWNCLOUD_DOMAIN: localhost:8080
+      OWNCLOUD_TRUSTED_DOMAINS: localhost
+      HTTP_PORT: 8080
+      OWNCLOUD_REDIS_ENABLED: true
+      OWNCLOUD_REDIS_HOST: redis
+    healthcheck:
+      test: ["CMD", "/usr/bin/healthcheck"]
+      interval: 10s
+      timeout: 5s
+      retries: 5
+
+  redis:
+    image: redis
+    healthcheck:
+      test: ["CMD", "redis-cli", "ping"]
+      interval: 10s
+      timeout: 5s
+      retries: 5
diff --git a/fixtures/webdav/health-check-nextcloud.sh 
b/fixtures/webdav/health-check-nextcloud.sh
new file mode 100755
index 000000000..28cdfaca5
--- /dev/null
+++ b/fixtures/webdav/health-check-nextcloud.sh
@@ -0,0 +1,21 @@
+# !/bin/bash
+# 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.
+
+set +ex
+
+curl -sSf 'http://localhost/status.php' | grep '"installed":true' | grep 
'"maintenance":false' | grep '"needsDbUpgrade":false' || exit 1
\ No newline at end of file

Reply via email to