name: Setup Rust Environment description: Sets up the Rust environment for the CI workflow runs: using: composite steps: - uses: actions/checkout@v3 with: submodules: true fetch-depth: 0 - uses: Swatinem/rust-cache@v2 with: { shared-key: "${{ runner.os }}-shared-fuzzer-cache" } - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable - name: Add stable clippy shell: bash run: rustup toolchain install stable --component clippy --allow-downgrade - name: Add nightly clippy shell: bash run: rustup toolchain install nightly --component clippy --allow-downgrade - name: Add no_std toolchain shell: bash run: rustup toolchain install nightly-x86_64-unknown-linux-gnu ; rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu - name: Add wasm target shell: bash run: rustup target add wasm32-unknown-unknown - name: Remove obsolete llvm (Linux) if: runner.os == 'Linux' shell: bash run: sudo apt purge -y llvm* clang* - name: Install LLVM and Clang uses: KyleMayes/install-llvm-action@v2 with: directory: ${{ runner.temp }}/llvm version: 17 - name: Install deps shell: bash run: sudo apt update && sudo apt install -y nasm nlohmann-json3-dev ninja-build gcc-arm-linux-gnueabi g++-arm-linux-gnueabi gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-mipsel-linux-gnu g++-mipsel-linux-gnu gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc6-dev-i386-cross libc6-dev libc6-dev-i386 lib32gcc-11-dev lib32stdc++-11-dev libgtk-3-dev pax-utils libz3-dev - name: pip install shell: bash run: python3 -m pip install msgpack jinja2 find_libpython - name: enable mult-thread for `make` shell: bash run: export MAKEFLAGS="-j$(expr $(nproc) \+ 1)" - name: install cargo-make uses: baptiste0928/cargo-install@v1.3.0 with: crate: cargo-make - name: install wasm-pack uses: baptiste0928/cargo-install@v1.3.0 with: crate: wasm-pack - name: install cxxbridge-cmd uses: baptiste0928/cargo-install@v1.3.0 with: crate: cxxbridge-cmd - name: install chrome uses: browser-actions/setup-chrome@v1 with: chrome-version: stable - name: Symlink Headers if: runner.os == 'Linux' shell: bash run: sudo ln -s /usr/include/asm-generic /usr/include/asm