feat: Fs
adds copy
& link
, TokioFs
& TokioUringFs
& `Monoio…
#315
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_REGISTRIES_MY_REGISTRY_INDEX: https://github.com/rust-lang/crates.io-index | |
jobs: | |
# 1 | |
check: | |
name: Rust project check | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install latest | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
components: rustfmt, clippy | |
# `cargo check` command here will use installed `nightly` | |
# as it is set as an "override" for current directory | |
- name: Run cargo build on tokio | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --package fusio --features=tokio,aws,tokio-http | |
- name: Run cargo build on monoio | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --package fusio --features=monoio | |
- name: Run cargo build on tokio-uring | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --package fusio --features=tokio-uring | |
- name: Run cargo build on fusio-dispatch | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --package fusio-dispatch --features=aws,tokio | |
- name: Run cargo build on fusio-object-store | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --package fusio-object-store | |
- name: Run cargo build on fusio-opendal | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --package fusio-opendal | |
- name: Run cargo build on fusio-parquet | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --package fusio-parquet | |
- name: Run cargo test on tokio | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --package fusio --features=tokio,aws,tokio-http | |
- name: Run cargo test on monoio | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --package fusio --features=monoio | |
- name: Run cargo test on tokio-uring | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --package fusio --features=tokio-uring | |
# 2 | |
fmt: | |
name: Rust fmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install latest nightly | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
components: rustfmt, clippy | |
# `cargo check` command here will use installed `nightly` | |
# as it is set as an "override" for current directory | |
- name: Run cargo fmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: -- --check | |
wasm: | |
name: WASM | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install latest | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
components: rustfmt, clippy | |
- name: Setup for wasm32 | |
run: | | |
rustup target add wasm32-unknown-unknown | |
- name: Run cargo build on fusio | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --target wasm32-unknown-unknown --package fusio --features=opfs,aws | |
- name: Run cargo build on fusio-parquet | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --target wasm32-unknown-unknown --package fusio-parquet --features=opfs | |
- name: Run cargo build on fusio-dispatch | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --target wasm32-unknown-unknown --package fusio-dispatch --features=opfs,aws | |
- name: Install Chrome Environment | |
run: | | |
mkdir -p /tmp/chrome | |
wget $(curl https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json | jq -r '.versions | sort_by(.version) | reverse | .[0] | .downloads.chrome | .[] | select(.platform == "linux64") | .url') | |
wget $(curl https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json | jq -r '.versions | sort_by(.version) | reverse | .[0] | .downloads.chromedriver | .[] | select(.platform == "linux64") | .url') | |
unzip chromedriver-linux64.zip | |
unzip chrome-linux64.zip | |
cp -r chrome-linux64/ /tmp/chrome/ | |
cp -r chromedriver-linux64 /tmp/chrome/chromedriver | |
- name: Setup wasm-pack | |
run: | | |
cargo install wasm-pack | |
- name: Run wasm-pack test on fusion | |
run: | | |
export PATH=$PATH:/tmp/chrome/chrome-linux64/:/tmp/chrome/chromedriver-linux64/ | |
wasm-pack test --chrome --headless fusio --features opfs | |
- name: Run wasm-pack test on fusion-parquet | |
run: | | |
export PATH=$PATH:/tmp/chrome/chrome-linux64/:/tmp/chrome/chromedriver-linux64/ | |
wasm-pack test --chrome --headless fusio-parquet --features opfs |