# Copyright 2024 RustFS Team # # Licensed 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" description: "setup environment for rustfs" inputs: rust-version: required: true default: "stable" description: "Rust version to use" cache-shared-key: required: true default: "" description: "Cache key for shared cache" cache-save-if: required: true default: ${{ github.ref == 'refs/heads/main' }} description: "Cache save condition" runs-on: required: true default: "ubuntu-latest" description: "Running system" runs: using: "composite" steps: - name: Install system dependencies if: inputs.runs-on == 'ubuntu-latest' shell: bash run: | sudo apt update sudo apt install -y musl-tools build-essential lld libdbus-1-dev libwayland-dev libwebkit2gtk-4.1-dev libxdo-dev - uses: arduino/setup-protoc@v3 with: version: "31.1" - uses: Nugine/setup-flatc@v1 with: version: "25.2.10" - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ inputs.rust-version }} components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: cache-all-crates: true shared-key: ${{ inputs.cache-shared-key }} save-if: ${{ inputs.cache-save-if }} - uses: mlugg/setup-zig@v2 - uses: taiki-e/install-action@cargo-zigbuild