name: Build (MacOS, Linux, Windows) on: [push] jobs: build: name: Build Check runs-on: ${{ matrix.os }} strategy: matrix: os: [windows-latest, macOS-latest, ubuntu-latest] steps: - uses: actions/checkout@v1 - name: Install Rust Nightly Toolchain uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - name: Run cargo check uses: actions-rs/cargo@v1 with: command: check test: name: Test Suite runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - uses: actions-rs/cargo@v1 with: command: test fmt: name: Code Formatting Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - run: rustup component add rustfmt - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Code Linting Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - run: rustup component add clippy - uses: actions-rs/cargo@v1 with: command: clippy args: -- -D warnings coverage: name: Code Coverage Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Install Rust Nightly Toolchain uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - name: Generate test profile uses: actions-rs/cargo@v1 with: command: test args: --all-features --no-fail-fast env: 'CARGO_INCREMENTAL': '0' 'RUSTFLAGS': '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Zno-landing-pads' - name: Generate coverage report uses: actions-rs/grcov@v0.1 - name: What was the file? run: echo ./lcov.info - name: What was in the file? run: cat ./lcov.info - name: Upload coverage report uses: codecov/codecov-action@v1.0.2 with: token: 70c0d44d-6ee2-4f23-b16b-0ed801149f8a file: ./lcov.info