Skip to content

feat: Add benchmark for buf write #2280

feat: Add benchmark for buf write

feat: Add benchmark for buf write #2280

# 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"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
nginx:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true
- name: Install nginx full for dav_ext modules
run: sudo apt install nginx-full
- name: Start nginx
shell: bash
working-directory: core
run: |
mkdir -p /tmp/static
nginx -c `pwd`/src/services/webdav/fixtures/nginx.conf
- name: Test
shell: bash
working-directory: core
run: cargo nextest run webdav
env:
OPENDAL_WEBDAV_TEST: on
OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080
nginx_with_password:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true
- name: Install nginx full for dav_ext modules
run: sudo apt install nginx-full
- name: Start nginx
shell: bash
working-directory: core
run: |
mkdir -p /tmp/static
cp `pwd`/src/services/webdav/fixtures/htpasswd /tmp/htpasswd
nginx -c `pwd`/src/services/webdav/fixtures/nginx-with-basic-auth.conf
- name: Test with password
shell: bash
working-directory: core
run: cargo nextest run webdav
env:
OPENDAL_WEBDAV_TEST: on
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@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true
- name: Install nginx full for dav_ext modules
run: sudo apt install nginx-full
- name: Start nginx
shell: bash
working-directory: core
run: |
mkdir -p /tmp/static
cp `pwd`/src/services/webdav/fixtures/htpasswd /tmp/htpasswd
nginx -c `pwd`/src/services/webdav/fixtures/nginx-with-basic-auth.conf
- name: Test empty password
shell: bash
working-directory: core
run: cargo nextest run webdav
env:
OPENDAL_WEBDAV_TEST: on
OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080
OPENDAL_WEBDAV_USERNAME: foo
nginx_with_redirect:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true
- name: Install nginx full for dav_ext modules
run: sudo apt install nginx-full
- name: Start nginx
shell: bash
working-directory: core
run: |
mkdir -p /tmp/static
mkdir -p /var/lib/nginx
# make nginx worker has permission to operate it
chmod a+rw /tmp/static/
# make nginx worker has permission to operate it
sudo chmod 777 /var/lib/nginx/body
nginx -c `pwd`/src/services/webdav/fixtures/nginx.conf
- name: Test with redirect
shell: bash
working-directory: core
run: |
cargo nextest run webdav
env:
OPENDAL_WEBDAV_TEST: on
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@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true
- name: Test
shell: bash
working-directory: core
run: |
cargo test webdav -j=1
env:
OPENDAL_WEBDAV_TEST: on
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@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true
- name: Test
shell: bash
working-directory: core
run: |
cargo test webdav -j=1
env:
OPENDAL_WEBDAV_TEST: on
OPENDAL_WEBDAV_ENDPOINT: http://127.0.0.1:8080/remote.php/webdav/
OPENDAL_WEBDAV_USERNAME: admin
OPENDAL_WEBDAV_PASSWORD: admin