Workflow file for this run
This file contains 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: 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: | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
- name: Add nightly rustfmt and clippy | |
shell: bash | |
run: rustup toolchain install nightly --component rustfmt --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: Install ucd-generate | |
shell: bash | |
run: cargo install -f ucd-generate | |
- name: Remove obsolete llvm (Linux) | |
if: runner.os == 'Linux' | |
shell: bash | |
run: sudo apt purge llvm* clang* | |
- name: Install LLVM and Clang | |
uses: KyleMayes/install-llvm-action@v1 | |
with: | |
directory: ${{ runner.temp }}/llvm | |
version: 17 | |
- name: Install deps | |
shell: bash | |
run: sudo apt update && sudo apt install nasm 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 |