You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2023/03/16 08:49:56 UTC

[incubator-opendal] 01/01: ci: Remove rust-cache to allow we can test rust code now

This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch cleanup-actions
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git

commit 1c893d277395f3638ffe6dc411b4f339076140f6
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Thu Mar 16 16:49:34 2023 +0800

    ci: Remove rust-cache to allow we can test rust code now
    
    Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
 .github/actions/setup/action.yaml            | 50 ++++++++++++++++++++++++++
 .github/workflows/bench.yml                  | 53 ----------------------------
 .github/workflows/ci.yml                     | 36 +++++++------------
 .github/workflows/docs.yml                   |  7 ++--
 .github/workflows/publish.yml                |  6 ++--
 .github/workflows/service_test_azblob.yml    |  4 ++-
 .github/workflows/service_test_azdfs.yml     |  3 +-
 .github/workflows/service_test_dashmap.yml   |  3 +-
 .github/workflows/service_test_fs.yml        |  3 +-
 .github/workflows/service_test_ftp.yml       |  3 +-
 .github/workflows/service_test_gcs.yml       |  3 +-
 .github/workflows/service_test_ghac.yml      |  3 +-
 .github/workflows/service_test_hdfs.yml      |  3 +-
 .github/workflows/service_test_http.yml      |  6 +++-
 .github/workflows/service_test_ipfs.yml      |  3 +-
 .github/workflows/service_test_ipmfs.yml     |  3 +-
 .github/workflows/service_test_memcached.yml |  3 +-
 .github/workflows/service_test_memory.yml    |  3 +-
 .github/workflows/service_test_moka.yml      |  3 +-
 .github/workflows/service_test_obs.yml       |  3 +-
 .github/workflows/service_test_oss.yml       |  3 +-
 .github/workflows/service_test_redis.yml     |  3 +-
 .github/workflows/service_test_rocksdb.yml   |  5 ++-
 .github/workflows/service_test_s3.yml        | 15 +++++---
 .github/workflows/service_test_sled.yml      |  3 +-
 .github/workflows/service_test_webdav.yml    |  4 +++
 .github/workflows/service_test_webhdfs.yml   |  3 +-
 .github/workflows/typos.yml                  |  8 ++---
 28 files changed, 127 insertions(+), 118 deletions(-)

diff --git a/.github/actions/setup/action.yaml b/.github/actions/setup/action.yaml
new file mode 100644
index 00000000..d27eecc9
--- /dev/null
+++ b/.github/actions/setup/action.yaml
@@ -0,0 +1,50 @@
+# 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: Setup Rust Builder
+description: 'Prepare Rust Build Environment'
+runs:
+  using: "composite"
+  steps:
+    - name: Cache Cargo
+      uses: actions/cache@v3
+      with:
+        path: |
+          /usr/local/cargo/bin/
+          /usr/local/cargo/registry/cache/
+        key: cargo-cache-v3-${{ hashFiles('**/Cargo.toml') }}
+        restore-keys: cargo-cache-v3-
+
+    - name: Install Build Dependencies
+      shell: bash
+      run: |
+        apt-get update
+        apt-get install -y librocksdb-dev
+        echo "ROCKSDB_LIB_DIR=/usr/lib" >> $GITHUB_ENV
+
+    - name: Setup rust related environment variables
+      shell: bash
+      run: |
+        # Disable full debug symbol generation to speed up CI build and keep memory down
+        # "1" means line tables only, which is useful for panic tracebacks.
+        echo "RUSTFLAGS=-C debuginfo=1" >> $GITHUB_ENV
+        # Enable backtraces
+        echo "RUST_BACKTRACE=1" >> $GITHUB_ENV
+        # Enable logging
+        echo "RUST_LOG=debug" >> $GITHUB_ENV
+        # Enable sparse index
+        echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml
deleted file mode 100644
index efa26438..00000000
--- a/.github/workflows/bench.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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: Benchmark
-on:
-  push:
-    branches:
-      - main
-  workflow_dispatch:
-
-permissions:
-  contents: write
-  deployments: write
-
-jobs:
-  benchmark:
-    name: Benchmark
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v3
-      - name: Run benchmark
-        run: cargo bench -- --output-format bencher | tee output.txt
-        env:
-          OPENDAL_MEMORY_TEST: on
-          OPENDAL_FS_TEST: on
-          OPENDAL_FS_ROOT: /tmp/opendal/
-
-      - name: Store benchmark result
-        if: github.repository_owner == 'datafuselabs'
-        uses: benchmark-action/github-action-benchmark@v1
-        with:
-          name: Rust Benchmark
-          tool: "cargo"
-          output-file-path: output.txt
-          github-token: ${{ secrets.GITHUB_TOKEN }}
-          auto-push: true
-          alert-threshold: "200%"
-          comment-on-alert: true
-          alert-comment-cc-users: "@Xuanwo"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 39e8a0f3..f508ceee 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -57,22 +57,17 @@ jobs:
         with:
           hdfs-version: "3.3.2"
 
-      - name: Install rocksdb
-        run: sudo apt install librocksdb-dev
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
 
-      - uses: Swatinem/rust-cache@v2
-
-      - name: Check license headers
-        uses: korandoru/hawkeye@v1
+      # Wait for https://github.com/apache/incubator-opendal/issues/1457
+      # - name: Check license headers
+      #   uses: korandoru/hawkeye@v1
       - name: Cargo format
         run: cargo fmt --all -- --check
       - name: Cargo clippy
-        env:
-          ROCKSDB_LIB_DIR: /usr/lib
         run: cargo clippy --all-targets --all-features --workspace -- -D warnings
       - name: Cargo doc
-        env:
-          ROCKSDB_LIB_DIR: /usr/lib
         run: cargo doc --lib --no-deps --all-features
 
   msrv_check:
@@ -91,16 +86,10 @@ jobs:
         with:
           distribution: temurin
           java-version: "11"
-      - name: Setup-hdfs env
-        uses: beyondstorage/setup-hdfs@master
-        with:
-          hdfs-version: "3.3.2"
       - name: Setup msrv of rust
         run: |
           rustup toolchain install ${OPENDAL_MSRV}
           rustup component add clippy --toolchain ${OPENDAL_MSRV}
-
-      - uses: Swatinem/rust-cache@v2
       - name: Check
         run: cargo +${OPENDAL_MSRV} clippy --no-deps --all-targets -- -D warnings
 
@@ -114,7 +103,8 @@ jobs:
           - windows-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Build
         run: cargo build -p opendal -p oli -p object_store_opendal
 
@@ -139,10 +129,9 @@ jobs:
         uses: beyondstorage/setup-hdfs@master
         with:
           hdfs-version: "3.3.2"
-      - name: Install rocksdb
-        run: sudo apt install librocksdb-dev
 
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Build
         env:
           ROCKSDB_LIB_DIR: /usr/lib
@@ -166,12 +155,11 @@ jobs:
         with:
           hdfs-version: "3.3.2"
 
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Install cargo-nextest
-        uses: taiki-e/install-action@nextest
+        run: cargo install cargo-nextest --locked
       - name: Test
         run: cargo nextest run --no-fail-fast --features layers-all && cargo test --doc
         env:
-          RUST_LOG: DEBUG
-          RUST_BACKTRACE: full
           LD_LIBRARY_PATH: ${{ env.JAVA_HOME }}/lib/server:${{ env.LD_LIBRARY_PATH }}
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 51d301e9..8958ea70 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -37,11 +37,8 @@ jobs:
           distribution: temurin
           java-version: '11'
 
-      - name: Install rocksdb
-        run: sudo apt install librocksdb-dev
-
-      # Disable until we are allowed
-      # - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
 
       - uses: actions-rs/cargo@v1
         with:
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 55b75d10..519792dc 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -40,10 +40,8 @@ jobs:
         uses: beyondstorage/setup-hdfs@master
         with:
           hdfs-version: "3.3.2"
-      - name: Install rocksdb
-        run: sudo apt install librocksdb-dev
-
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
 
       - name: Publish opendal
         run: cargo publish --all-features
diff --git a/.github/workflows/service_test_azblob.yml b/.github/workflows/service_test_azblob.yml
index 2d35fcd7..b4894ea0 100644
--- a/.github/workflows/service_test_azblob.yml
+++ b/.github/workflows/service_test_azblob.yml
@@ -54,7 +54,9 @@ jobs:
               --name test \
               --connection-string "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"
 
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
+
       - name: Test
         shell: bash
         run: cargo test azblob -- --show-output
diff --git a/.github/workflows/service_test_azdfs.yml b/.github/workflows/service_test_azdfs.yml
index 8b83f27e..176740bf 100644
--- a/.github/workflows/service_test_azdfs.yml
+++ b/.github/workflows/service_test_azdfs.yml
@@ -41,7 +41,8 @@ jobs:
 
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test azdfs -- --show-output
diff --git a/.github/workflows/service_test_dashmap.yml b/.github/workflows/service_test_dashmap.yml
index f3fc5ba1..9d04546b 100644
--- a/.github/workflows/service_test_dashmap.yml
+++ b/.github/workflows/service_test_dashmap.yml
@@ -44,7 +44,8 @@ jobs:
           - ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test dashmap --features services-dashmap -- --show-output
diff --git a/.github/workflows/service_test_fs.yml b/.github/workflows/service_test_fs.yml
index 22f75579..f3cbd867 100644
--- a/.github/workflows/service_test_fs.yml
+++ b/.github/workflows/service_test_fs.yml
@@ -45,7 +45,8 @@ jobs:
           - windows-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test fs -- --show-output
diff --git a/.github/workflows/service_test_ftp.yml b/.github/workflows/service_test_ftp.yml
index b50e939b..2762a528 100644
--- a/.github/workflows/service_test_ftp.yml
+++ b/.github/workflows/service_test_ftp.yml
@@ -74,7 +74,8 @@ jobs:
           swapon --show
           echo
 
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test ftp --features services-ftp -- --show-output
diff --git a/.github/workflows/service_test_gcs.yml b/.github/workflows/service_test_gcs.yml
index 18015426..862af6fc 100644
--- a/.github/workflows/service_test_gcs.yml
+++ b/.github/workflows/service_test_gcs.yml
@@ -40,7 +40,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test gcs -- --show-output
diff --git a/.github/workflows/service_test_ghac.yml b/.github/workflows/service_test_ghac.yml
index 444dd0bf..949d0f00 100644
--- a/.github/workflows/service_test_ghac.yml
+++ b/.github/workflows/service_test_ghac.yml
@@ -40,7 +40,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
 
       - name: Configure Cache Env
         uses: actions/github-script@v6
diff --git a/.github/workflows/service_test_hdfs.yml b/.github/workflows/service_test_hdfs.yml
index faf01b85..0cc1131d 100644
--- a/.github/workflows/service_test_hdfs.yml
+++ b/.github/workflows/service_test_hdfs.yml
@@ -58,7 +58,8 @@ jobs:
         with:
           hdfs-version: ${{ matrix.hdfs-version }}
 
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         continue-on-error: true
diff --git a/.github/workflows/service_test_http.yml b/.github/workflows/service_test_http.yml
index 3e2db2ad..c1581827 100644
--- a/.github/workflows/service_test_http.yml
+++ b/.github/workflows/service_test_http.yml
@@ -52,6 +52,9 @@ jobs:
           cp -r tests/data/* /tmp/static
           nginx -c `pwd`/src/services/http/fixtures/nginx.conf
 
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
+
       - name: Test
         shell: bash
         run: cargo test http -- --show-output
@@ -84,7 +87,8 @@ jobs:
           cp -r tests/data/* /tmp/static
           ./caddy file-server --root /tmp/static --listen 127.0.0.1:8080 --access-log &
 
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test http -- --show-output
diff --git a/.github/workflows/service_test_ipfs.yml b/.github/workflows/service_test_ipfs.yml
index a515fb0b..de50683a 100644
--- a/.github/workflows/service_test_ipfs.yml
+++ b/.github/workflows/service_test_ipfs.yml
@@ -50,7 +50,8 @@ jobs:
         run: |
           ipfs add -r ./tests/data --to-files /opendal-testdata
           ipfs files ls /opendal-testdata -l
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test ipfs --features services-ipfs -- --show-output
diff --git a/.github/workflows/service_test_ipmfs.yml b/.github/workflows/service_test_ipmfs.yml
index 75da1a73..2e60de80 100644
--- a/.github/workflows/service_test_ipmfs.yml
+++ b/.github/workflows/service_test_ipmfs.yml
@@ -45,7 +45,8 @@ jobs:
           - 5001:5001
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test ipmfs -- --show-output
diff --git a/.github/workflows/service_test_memcached.yml b/.github/workflows/service_test_memcached.yml
index 333bc37f..91ace58f 100644
--- a/.github/workflows/service_test_memcached.yml
+++ b/.github/workflows/service_test_memcached.yml
@@ -54,7 +54,8 @@ jobs:
 
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test memcached --features services-memcached -- --show-output
diff --git a/.github/workflows/service_test_memory.yml b/.github/workflows/service_test_memory.yml
index 5907c4be..875391d4 100644
--- a/.github/workflows/service_test_memory.yml
+++ b/.github/workflows/service_test_memory.yml
@@ -44,7 +44,8 @@ jobs:
           - ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test memory -- --show-output
diff --git a/.github/workflows/service_test_moka.yml b/.github/workflows/service_test_moka.yml
index 96dd1d45..2aad89d4 100644
--- a/.github/workflows/service_test_moka.yml
+++ b/.github/workflows/service_test_moka.yml
@@ -44,7 +44,8 @@ jobs:
           - ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test moka --features services-moka -- --show-output
diff --git a/.github/workflows/service_test_obs.yml b/.github/workflows/service_test_obs.yml
index 8e4eb27d..f5e40454 100644
--- a/.github/workflows/service_test_obs.yml
+++ b/.github/workflows/service_test_obs.yml
@@ -40,7 +40,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test obs -- --show-output
diff --git a/.github/workflows/service_test_oss.yml b/.github/workflows/service_test_oss.yml
index 0ab2d781..9ca1236a 100644
--- a/.github/workflows/service_test_oss.yml
+++ b/.github/workflows/service_test_oss.yml
@@ -40,7 +40,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test oss -- --show-output
diff --git a/.github/workflows/service_test_redis.yml b/.github/workflows/service_test_redis.yml
index a11e8681..0f0ed19f 100644
--- a/.github/workflows/service_test_redis.yml
+++ b/.github/workflows/service_test_redis.yml
@@ -45,7 +45,8 @@ jobs:
           - 6379:6379
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test redis --features services-redis -- --show-output
diff --git a/.github/workflows/service_test_rocksdb.yml b/.github/workflows/service_test_rocksdb.yml
index 43bd635e..64415463 100644
--- a/.github/workflows/service_test_rocksdb.yml
+++ b/.github/workflows/service_test_rocksdb.yml
@@ -40,9 +40,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - name: Install rocksdb
-        run: sudo apt install librocksdb-dev
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test rocksdb --features services-rocksdb -- --show-output --test-threads=1
diff --git a/.github/workflows/service_test_s3.yml b/.github/workflows/service_test_s3.yml
index 3300736c..42b2bc1d 100644
--- a/.github/workflows/service_test_s3.yml
+++ b/.github/workflows/service_test_s3.yml
@@ -40,7 +40,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test s3 -- --show-output
@@ -58,7 +59,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test s3 -- --show-output
@@ -77,7 +79,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test s3 -- --show-output
@@ -115,7 +118,8 @@ jobs:
           AWS_SECRET_ACCESS_KEY: "minioadmin"
           AWS_EC2_METADATA_DISABLED: "true"
         run: aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://test
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test s3 -- --show-output
@@ -150,7 +154,8 @@ jobs:
           ./mc alias set local http://127.0.0.1:9000/ minioadmin minioadmin
           ./mc mb local/test
           ./mc anonymous set public local/test
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test s3 -- --show-output
diff --git a/.github/workflows/service_test_sled.yml b/.github/workflows/service_test_sled.yml
index dc73dda0..84c447de 100644
--- a/.github/workflows/service_test_sled.yml
+++ b/.github/workflows/service_test_sled.yml
@@ -40,7 +40,8 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         run: cargo test sled --features services-sled -- --show-output --test-threads=1
diff --git a/.github/workflows/service_test_webdav.yml b/.github/workflows/service_test_webdav.yml
index 5add5479..870ab86e 100644
--- a/.github/workflows/service_test_webdav.yml
+++ b/.github/workflows/service_test_webdav.yml
@@ -44,6 +44,8 @@ jobs:
           - ubuntu-latest
     steps:
       - uses: actions/checkout@v3
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
 
       - name: Install nginx full for dav_ext modules
         run: sudo apt install nginx-full
@@ -71,6 +73,8 @@ jobs:
           - ubuntu-latest
     steps:
       - uses: actions/checkout@v3
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
 
       - name: Install nginx full for dav_ext modules
         run: sudo apt install nginx-full
diff --git a/.github/workflows/service_test_webhdfs.yml b/.github/workflows/service_test_webhdfs.yml
index 923c82d4..0b780889 100644
--- a/.github/workflows/service_test_webhdfs.yml
+++ b/.github/workflows/service_test_webhdfs.yml
@@ -49,7 +49,8 @@ jobs:
         with:
           hdfs-version: ${{ matrix.hdfs-version }}
 
-      - uses: Swatinem/rust-cache@v2
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
       - name: Test
         shell: bash
         continue-on-error: true
diff --git a/.github/workflows/typos.yml b/.github/workflows/typos.yml
index 64561ae8..14a838b1 100644
--- a/.github/workflows/typos.yml
+++ b/.github/workflows/typos.yml
@@ -43,12 +43,10 @@ jobs:
       - uses: actions/checkout@v3
         with:
           clean: "true"
+      - name: Setup Rust toolchain
+        uses: ./.github/actions/setup
 
-      - uses: baptiste0928/cargo-install@v1
-        with:
-          crate: typos-cli
-          args: --locked
-          cache-key: typos-check
+      - run: cargo install typos-cli --locked
 
       - name: do typos check with typos-cli
         run: typos