Skip to content

feat(core): add OpenStack Swift e2e test #8024

feat(core): add OpenStack Swift e2e test

feat(core): add OpenStack Swift e2e test #8024

Workflow file for this run

# 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: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
paths-ignore:
- "docs/**"
- "website/**"
- "*.md"
- ".github/**"
- "!.github/workflows/ci.yml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: ./.github/actions/setup
- name: Check license headers
uses: korandoru/[email protected]
- name: Cargo format
run: cargo fmt --all -- --check
- name: Check diff
run: git diff --exit-code
check_docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-rocksdb: true
need-protoc: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout python env
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Checkout java env
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: "11"
- name: Setup OCaml toolchain
uses: ./.github/actions/setup-ocaml
- name: Cargo doc
run: cargo doc --lib --no-deps --all-features -p opendal
check_clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-rocksdb: true
need-protoc: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout python env
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Checkout java env
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: "11"
- name: Setup OCaml toolchain
uses: ./.github/actions/setup-ocaml
- name: Cargo clippy
# FIXME
# remove `-exclude opendal-php` after https://github.com/apache/incubator-opendal/issues/3055 addressed
run: cargo clippy --all-targets --all-features --workspace --exclude opendal-php -- -D warnings
- name: Check diff
run: git diff --exit-code
check_msrv:
runs-on: ubuntu-latest
env:
# OpenDAL's MSRV is 1.67.
OPENDAL_MSRV: "1.67"
steps:
- uses: actions/checkout@v4
- name: Setup msrv of rust
run: |
rustup toolchain install ${OPENDAL_MSRV}
rustup component add clippy --toolchain ${OPENDAL_MSRV}
- name: Check
run: cargo +${OPENDAL_MSRV} clippy -p opendal --no-deps -- -D warnings
build_default_features:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: cargo build -p opendal -p oli -p object_store_opendal
build_all_features:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout python env
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Checkout java env
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: "11"
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-rocksdb: true
need-protoc: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: cargo build --all-features
build_all_platforms:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
- name: Checkout python env
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Checkout java env
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: "11"
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-rocksdb: true
need-protoc: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
shell: bash
run: |
FEATURES=(
# services-azblob
# services-azdls
# services-cacache
# services-cos
# services-dashmap
# services-dropbox
# services-etcd
# FIXME this requires a preinstalled fdb library
# services-foundationdb
# services-fs
# services-ftp
# services-gcs
# services-gdrive
# services-ghac
# FIXME how to support HDFS services in other platforms?
# services-hdfs
# services-http
# services-ipfs
# services-ipmfs
# services-memcached
# services-memory
# services-mini-moka
# services-moka
# services-obs
# services-onedrive
# services-oss
# services-persy
# services-postgresql
# services-redb
# services-redis
# TODO: we need to find ways to using pre-install rocksdb library
# services-rocksdb
# services-s3
# TODO: sftp is known to not work on windows, waiting for https://github.com/apache/incubator-opendal/issues/2963
# services-sftp
# services-sled
services-swift
# services-supabase
# services-tikv
# services-vercel-artifacts
# services-wasabi
# services-webdav
# services-webhdfs
)
cargo build --features "${FEATURES[*]}"
unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout python env
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Checkout java env
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: "11"
- name: Setup OCaml toolchain
uses: ./.github/actions/setup-ocaml
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true
- name: Test
run: cargo nextest run --no-fail-fast --features layers-all && cargo test --doc
env:
LD_LIBRARY_PATH: ${{ env.JAVA_HOME }}/lib/server:${{ env.LD_LIBRARY_PATH }}