name: Rust on: push: branches: [ master ] pull_request: branches: [ master ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-20.04 steps: - name: Install build tools run: sudo apt-get update && sudo apt-get install xvfb build-essential binutils-arm-none-eabi pulseaudio -y - name: Install mgba 0.9 run: | curl -L https://github.com/mgba-emu/mgba/releases/download/0.9.0/mGBA-0.9.0-ubuntu64-focal.tar.xz -o mgba.tar.xz && \ tar -xf mgba.tar.xz && \ sudo apt-get install libzip5 ./mGBA-0.9.0-ubuntu64-focal/* -y && \ rm -rf mgba.tar.xz mGBA-0.9.0-ubuntu64-focal - uses: actions/checkout@v2 - name: Nightly rust with required components uses: actions-rs/toolchain@v1 with: toolchain: nightly components: clippy, rust-src override: true - name: Cache uses: actions/cache@v2.1.1 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ steps.rust_install.outputs.rustc_hash }} - name: install mgba-test-runner run: cargo install --git https://github.com/corwinkuiper/mgba-test-runner.git - name: Build run: cargo build --verbose - name: Run Clippy run: cargo clippy --verbose - name: Run Tests run: pulseaudio -D && cargo test --verbose