Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Make every components seperate, remove workspace #4134

Merged
merged 10 commits into from
Feb 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions .github/workflows/ci_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# 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: Check

on:
push:
branches:
- main
pull_request:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true

env:
RUST_BACKTRACE: 1

jobs:
typos:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
FORCE_COLOR: 1
steps:
- uses: actions/checkout@v4
- run: curl -LsSf https://github.com/crate-ci/typos/releases/download/v1.14.8/typos-v1.14.8-x86_64-unknown-linux-musl.tar.gz | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin

- name: do typos check with typos-cli
run: typos

licenses:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
FORCE_COLOR: 1
steps:
- uses: actions/checkout@v4
- name: Check license headers
uses: korandoru/hawkeye@v4.0.5

# Add python format check later.
code-format:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
FORCE_COLOR: 1
steps:
- uses: actions/checkout@v4

- name: Rust Code Format
run: ./scripts/workspace.py cargo fmt -- --check

dependencies:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
FORCE_COLOR: 1
steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-deny: true

- name: Check dependencies
run: python3 ./scripts/dependencies.py check

website-dependencies:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v2
with:
version: 8

- uses: actions/setup-node@v4
with:
node-version: '18'
cache: pnpm
cache-dependency-path: "website/pnpm-lock.yaml"

- name: Corepack
working-directory: website
run: corepack enable

- name: Install Dependencies
working-directory: website
run: pnpm install --frozen-lockfile

- name: Check dependencies
working-directory: website
run: |
npx license-checker --production --excludePrivatePackages --csv > DEPENDENCIES.node.csv
git diff --exit-code
109 changes: 16 additions & 93 deletions .github/workflows/ci.yml → .github/workflows/core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.

name: CI
name: Core CI

on:
push:
Expand All @@ -24,77 +24,15 @@ on:
pull_request:
branches:
- main
paths-ignore:
- "docs/**"
- "website/**"
- "*.md"
- ".github/**"
- "!.github/workflows/ci.yml"
paths:
- "core/**"
- ".github/workflows/core.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/hawkeye@v4.0.5

- name: Cargo format
run: cargo fmt --all -- --check

- name: Check diff
run: git diff --exit-code

check_dependencies:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-deny: true

- name: Check dependencies
run: python3 ./scripts/dependencies.py check

check_website_dependencies:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v2
with:
version: 8

- uses: actions/setup-node@v4
with:
node-version: '18'
cache: pnpm
cache-dependency-path: "website/pnpm-lock.yaml"

- name: Corepack
working-directory: website
run: corepack enable

- name: Install Dependencies
working-directory: website
run: pnpm install --frozen-lockfile

- name: Check dependencies
working-directory: website
run: |
npx license-checker --producation --excludePrivatePackages --csv > DEPENDENCIES.node.csv
git diff --exit-code
check_docs:
runs-on: ubuntu-latest
steps:
Expand All @@ -107,22 +45,15 @@ jobs:
need-protoc: true
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Checkout python env
uses: actions/setup-python@v5
with:
python-version: "3.8"

- name: Checkout java env
uses: actions/setup-java@v4
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
working-directory: core
run: cargo doc --lib --no-deps --all-features

check_clippy:
runs-on: ubuntu-latest
Expand All @@ -136,27 +67,15 @@ jobs:
need-protoc: true
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Checkout python env
uses: actions/setup-python@v5
with:
python-version: "3.8"

- name: Checkout java env
uses: actions/setup-java@v4
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/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
working-directory: core
run: cargo clippy --all-targets --all-features -- -D warnings

check_msrv:
runs-on: ubuntu-latest
Expand All @@ -170,7 +89,8 @@ jobs:
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
working-directory: core
run: cargo +${OPENDAL_MSRV} clippy -- -D warnings

build_default_features:
runs-on: ${{ matrix.os }}
Expand All @@ -187,7 +107,8 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: cargo build -p opendal -p oli -p object_store_opendal
working-directory: core
run: cargo build

build_all_features:
runs-on: ubuntu-latest
Expand All @@ -211,6 +132,7 @@ jobs:
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Build
working-directory: core
run: cargo build --all-features

build_all_platforms:
Expand Down Expand Up @@ -242,6 +164,7 @@ jobs:

- name: Build
shell: bash
working-directory: core
run: |
FEATURES=(
services-alluxio
Expand Down Expand Up @@ -303,6 +226,7 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
working-directory: core
run: |
FEATURES=(
services-azblob
Expand All @@ -325,15 +249,14 @@ jobs:
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
working-directory: core
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 }}
5 changes: 3 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ jobs:
java-version: '17'

- name: Build OpenDAL doc
run: cargo +nightly doc --lib --no-deps --all-features -p opendal
working-directory: core
run: cargo +nightly doc --lib --no-deps --all-features
env:
LD_LIBRARY_PATH: ${{ env.JAVA_HOME }}/lib/server:${{ env.LD_LIBRARY_PATH }}
# Enable cfg docs to make sure docs are built.
Expand All @@ -67,7 +68,7 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: rust-docs
path: ./target/doc
path: ./core/target/doc

build-java-doc:
runs-on: ubuntu-latest
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/oay_test_webdav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,10 @@ jobs:
make
- name: Build and Start WebDAV service
working-directory: bin/oay
run: |
cargo build --package oay --bin webdav --release
cargo run --package oay --bin webdav --release &
cargo build --bin webdav --release
cargo run --bin webdav --release &
- name: Run litmus tests
run: |
Expand Down
Loading
Loading