introduces new api that checks for file existence (#260) #1008
This file contains hidden or 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: | |
| branches: [main] | |
| paths-ignore: | |
| - '**.md' | |
| - 'LICENSE' | |
| - '.gitignore' | |
| pull_request: | |
| paths-ignore: | |
| - '**.md' | |
| - 'LICENSE' | |
| - '.gitignore' | |
| workflow_dispatch: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| CARGO_REGISTRIES_MY_REGISTRY_INDEX: https://github.com/rust-lang/crates.io-index | |
| BUCKET_NAME: fusio-test | |
| jobs: | |
| # 1 | |
| check: | |
| name: Rust project check | |
| permissions: | |
| id-token: write | |
| contents: read | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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 | |
| if: runner.os != 'Windows' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --package fusio --features=monoio | |
| - name: Run cargo build on tokio-uring | |
| if: runner.os == 'Linux' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --package fusio --features=tokio-uring | |
| - 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 tokio | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --package fusio-parquet --features=tokio | |
| - name: Run cargo build on fusio-parquet monoio | |
| if: runner.os != 'Windows' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --package fusio-parquet --features=monoio | |
| - name: Run cargo build on fusio-manifest | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --package fusio-manifest | |
| - name: Run cargo clippy on tokio | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio --features=tokio,aws,tokio-http -- -D warnings | |
| - name: Run cargo clippy on monoio | |
| if: runner.os != 'Windows' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio --features=monoio -- -D warnings | |
| - name: Run cargo clippy on tokio-uring | |
| if: runner.os == 'Linux' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio --features=tokio-uring -- -D warnings | |
| - name: Run cargo clippy on fusio-object-store | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio-object-store -- -D warnings | |
| - name: Run cargo clippy on fusio-opendal | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio-opendal -- -D warnings | |
| - name: Run cargo clippy on fusio-parquet tokio | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio-parquet --features=tokio -- -D warnings | |
| - name: Run cargo clippy on fusio-parquet monoio | |
| if: runner.os != 'Windows' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio-parquet --features=monoio -- -D warnings | |
| - name: Run cargo clippy on fusio-manifest | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --package fusio-manifest -- -D warnings | |
| # - name: Configure aws credentials | |
| # if: ${{ (github.event_name == 'push' && github.ref_name == 'main') || startsWith(github.ref, 'refs/tags/') }} | |
| # uses: aws-actions/configure-aws-credentials@v4 | |
| # with: | |
| # role-to-assume: ${{ env.ROLE_TO_ASSUME }} | |
| # role-session-name: fusio_session | |
| # aws-region: ${{ env.AWS_REGION }} | |
| # env: | |
| # AWS_REGION: ap-southeast-1 | |
| # ROLE_TO_ASSUME: arn:aws:iam::232814779190:role/github | |
| - name: Run cargo test on tokio | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --package fusio --features=tokio,tokio-http | |
| - name: Run cargo test on monoio | |
| if: runner.os != 'Windows' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --package fusio --features=monoio,monoio-http | |
| - name: Run cargo test on tokio-uring | |
| if: runner.os == 'Linux' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --package fusio --features=tokio-uring | |
| - name: Run cargo test on fusio-parquet tokio | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --package fusio-parquet --features=tokio | |
| - name: Run cargo test on fusio-parquet monoio | |
| if: runner.os != 'Windows' | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --package fusio-parquet --features=monoio | |
| - name: Run cargo test on fusio-manifest | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --package fusio-manifest --lib | |
| # 2 | |
| fmt: | |
| name: Rust fmt | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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 | |
| permissions: | |
| id-token: write | |
| contents: read | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - 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 --no-default-features --features=executor-web,aws,web-http | |
| - name: Run cargo build on fusio (opfs back-compat) | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --target wasm32-unknown-unknown --package fusio --no-default-features --features=executor-web,opfs,aws,web-http | |
| - name: Run cargo build on fusio-parquet | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --target wasm32-unknown-unknown --package fusio-parquet --features=web | |
| - name: Run cargo build on fusio-manifest | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --target wasm32-unknown-unknown --package fusio-manifest --no-default-features --features=web | |
| - name: Run cargo clippy on fusio (wasm) | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --target wasm32-unknown-unknown --package fusio --no-default-features --features=executor-web,aws,web-http -- -D warnings | |
| - name: Run cargo clippy on fusio (wasm opfs) | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --target wasm32-unknown-unknown --package fusio --no-default-features --features=executor-web,opfs,aws,web-http -- -D warnings | |
| - name: Run cargo clippy on fusio-parquet (wasm) | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --target wasm32-unknown-unknown --package fusio-parquet --features=web -- -D warnings | |
| - name: Run cargo clippy on fusio-manifest (wasm) | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --target wasm32-unknown-unknown --package fusio-manifest --no-default-features --features=web -- -D warnings | |
| - 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: Configure aws credentials | |
| # if: ${{ (github.event_name == 'push' && github.ref_name == 'main') || startsWith(github.ref, 'refs/tags/') }} | |
| # uses: aws-actions/configure-aws-credentials@v4 | |
| # with: | |
| # role-to-assume: ${{ env.ROLE_TO_ASSUME }} | |
| # role-session-name: samplerolesession | |
| # aws-region: ${{ env.AWS_REGION }} | |
| # env: | |
| # AWS_REGION: ap-southeast-1 | |
| # ROLE_TO_ASSUME: arn:aws:iam::232814779190:role/github | |
| - name: Run wasm-pack test on fusio (web executor) | |
| run: | | |
| export PATH=$PATH:/tmp/chrome/chrome-linux64/:/tmp/chrome/chromedriver-linux64/ | |
| wasm-pack test --chrome --headless fusio --no-default-features --features executor-web,web-http | |
| - name: Run wasm-pack test on fusio (back-compat opfs) | |
| run: | | |
| export PATH=$PATH:/tmp/chrome/chrome-linux64/:/tmp/chrome/chromedriver-linux64/ | |
| wasm-pack test --chrome --headless fusio --no-default-features --features executor-web,opfs,web-http | |
| - 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 web | |
| - name: Run wasm-pack test on fusio-manifest | |
| run: | | |
| export PATH=$PATH:/tmp/chrome/chrome-linux64/:/tmp/chrome/chromedriver-linux64/ | |
| wasm-pack test --chrome --headless fusio-manifest --no-default-features --features web |