name: Build & Test
on:
push:
branches: [ master, staging, trying ]
pull_request:
branches: [ master ]
env:
RUSTFLAGS: "-C debuginfo=0 -D warnings"
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_PROFILE_DEV_OPT_LEVEL: 0
CARGO_PROFILE_DEV_DEBUG: 0
CARGO_PROFILE_TEST_DEBUG: 0
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
if: runner.os == 'linux'
- name: Cargo Registry Cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git/db
key: cargo-registry
- name: Rustfmt
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --workspace --features ldtk,epaint
build-and-test-native:
needs: check
strategy:
matrix:
os: [ 'windows-latest', 'ubuntu-latest', 'macos-latest' ]
toolchain: [ 'stable', 'nightly' ]
continue-on-error: ${{ matrix.toolchain == 'nightly' }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
if: runner.os == 'linux'
- name: Cargo Registry Cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git/db
key: cargo-registry
- name: Rust Toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
override: true
- name: Build
run: cargo build --workspace --features ldtk,epaint --verbose
- name: Test
run: cargo test --workspace --features ldtk,epaint --verbose
build-wasm:
needs: check
runs-on: ubuntu-latest
env:
CARGO_PROFILE_DEV_DEBUG: true
CARGO_PROFILE_DEV_OPT_LEVEL: 0
steps:
- uses: actions/checkout@v2
- name: Cargo Registry Cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry/index
~/.cargo/registry/cache
~/.cargo/git/db
key: cargo-registry
- name: Rust Toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Build
run: cargo build --workspace --features ldtk,epaint --verbose --target wasm32-unknown-unknown