name: ci on: [push, pull_request] jobs: build: name: build runs-on: ${{ matrix.os }} strategy: matrix: include: - target: x86_64-apple-darwin os: macos-latest - target: x86_64-pc-windows-gnu os: windows-latest - target: x86_64-pc-windows-msvc os: windows-latest - target: x86_64-unknown-linux-gnu os: ubuntu-latest - target: x86_64-unknown-linux-musl os: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2.3.4 - name: Install rust toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable target: ${{ matrix.target }} default: true - name: Cargo build uses: actions-rs/cargo@v1.0.3 with: command: build args: --target ${{ matrix.target }} env: GEN_COMPLETIONS: 1 clippy: name: clippy runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2.3.4 - name: Install rust toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable components: clippy default: true - name: Cargo clippy uses: actions-rs/cargo@v1.0.3 with: command: clippy args: -- -D warnings rustfmt: name: rustfmt runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2.3.4 - name: Install rust toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: nightly components: rustfmt default: true - name: Cargo fmt uses: actions-rs/cargo@v1.0.3 with: command: fmt args: -- --check