Skip to content

refactor(bindings/ocaml): Refactor module to support documentation #6240

refactor(bindings/ocaml): Refactor module to support documentation

refactor(bindings/ocaml): Refactor module to support documentation #6240

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@v3
- 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@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-rocksdb: true
need-protoc: true
- 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@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-rocksdb: true
need-protoc: true
- 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
run: cargo clippy --all-targets --all-features --workspace -- -D warnings
check_msrv:
runs-on: ubuntu-latest
env:
# OpenDAL's MSRV is 1.65.
OPENDAL_MSRV: "1.65"
steps:
- uses: actions/checkout@v3
- 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:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v3
- name: Setup Rust toolchain
uses: ./.github/actions/setup
- name: Build
run: cargo build -p opendal -p oli -p object_store_opendal
build_all_features:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- 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-rocksdb: true
need-protoc: true
- name: Build
run: cargo build --all-features
unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- 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 }}