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:55 UTC

[incubator-opendal] branch cleanup-actions created (now 1c893d27)

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

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


      at 1c893d27 ci: Remove rust-cache to allow we can test rust code now

This branch includes the following new commits:

     new 1c893d27 ci: Remove rust-cache to allow we can test rust code now

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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

Posted by xu...@apache.org.
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