name: CI on: pull_request: push: branches: [main, staging, trying] env: CARGO_TERM_COLOR: always jobs: build: strategy: matrix: toolchain: [stable, nightly] os: [windows-latest, ubuntu-latest, macos-latest] exclude: - os: macos-latest toolchain: nightly - os: windows-latest toolchain: nightly runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} components: rustfmt, clippy override: true - 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: Check the format run: cargo fmt --all -- --check if: runner.os == 'linux' && matrix.toolchain == 'stable' # -A clippy::type_complexity: type complexity must be ignored because we use huge templates for queries. # -A clippy::manual-strip: strip_prefix support was added in 1.45. We want to support earlier rust versions. - name: Clippy run: cargo clippy --all-targets --all-features -- -D warnings -A clippy::type_complexity -A clippy::manual-strip if: runner.os == 'linux' && matrix.toolchain == 'stable' - name: Build & run tests run: cargo test --workspace env: CARGO_INCREMENTAL: 0 RUSTFLAGS: "-C debuginfo=0 -D warnings" build-wasm: strategy: matrix: toolchain: [stable, nightly] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} target: wasm32-unknown-unknown override: true - name: Check wasm uses: actions-rs/cargo@v1 with: command: check args: --target wasm32-unknown-unknown --no-default-features --features bevy_winit,x11,hdr,bevy_gltf build-android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Android targets run: rustup target add aarch64-linux-android armv7-linux-androideabi - name: Install Cargo APK run: cargo install cargo-apk - name: Build APK run: cargo apk build --example android markdownlint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: # Full git history is needed to get a proper list of changed files within `super-linter` fetch-depth: 0 - name: Run Markdown Lint uses: github/super-linter@v3 env: VALIDATE_ALL_CODEBASE: false VALIDATE_MARKDOWN: true DEFAULT_BRANCH: master # Not needed here as only one Linter is used. #GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}