89 lines
2.1 KiB
YAML
89 lines
2.1 KiB
YAML
on: [push, pull_request]
|
|
|
|
name: CI
|
|
|
|
jobs:
|
|
checks:
|
|
name: ${{ matrix.name }} (${{ matrix.target }})
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
target:
|
|
- x86_64-unknown-linux-gnu
|
|
- x86_64-unknown-freebsd
|
|
- aarch64-linux-android
|
|
- x86_64-pc-windows-gnu
|
|
- x86_64-apple-darwin
|
|
|
|
include:
|
|
- os: ubuntu-latest
|
|
name: Linux x86_64
|
|
target: x86_64-unknown-linux-gnu
|
|
cross: false
|
|
strip: true
|
|
|
|
- os: ubuntu-latest
|
|
name: FreeBSD
|
|
target: x86_64-unknown-freebsd
|
|
cross: true
|
|
strip: true
|
|
|
|
- os: ubuntu-latest
|
|
name: Android
|
|
target: aarch64-linux-android
|
|
cross: true
|
|
strip: true
|
|
|
|
- os: windows-latest
|
|
name: Windows x86_64
|
|
target: x86_64-pc-windows-gnu
|
|
cross: false
|
|
strip: true
|
|
|
|
- os: macos-latest
|
|
name: macOS x86_64
|
|
target: x86_64-apple-darwin
|
|
cross: false
|
|
strip: true
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Bootstrap
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
components: rustfmt, clippy
|
|
target: ${{ matrix.target }}
|
|
|
|
- name: Formatting
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
use-cross: ${{ matrix.cross }}
|
|
continue-on-error: false
|
|
|
|
- name: Lints
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: --target=${{ matrix.target }} -- --no-deps -D clippy::all
|
|
use-cross: ${{ matrix.cross }}
|
|
continue-on-error: false
|
|
|
|
- name: Build
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --target=${{ matrix.target }}
|
|
use-cross: ${{ matrix.cross }}
|
|
|
|
- name: Test
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --target=${{ matrix.target }}
|
|
if: ${{ !matrix.cross }}
|