name: CI on: push: branches: - master pull_request: jobs: check: name: Compile runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: generate-lockfile - uses: actions/cache@v1.0.1 with: path: target key: ${{ runner.OS }}-build-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.OS }}-build- - uses: actions-rs/cargo@v1 with: command: test args: --all check-features: name: Features runs-on: ubuntu-latest needs: [check] strategy: matrix: features: - --manifest-path=example/Cargo.toml - --all-features --release - --no-default-features --release - --all-features - --no-default-features - --no-default-features --features par-iter - --no-default-features --features par-schedule - --no-default-features --features metrics - --no-default-features --features ffi steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: generate-lockfile - uses: actions/cache@v1.0.1 with: path: target key: ${{ runner.OS }}-build-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.OS }}-build- - uses: actions-rs/cargo@v1 with: command: test args: --all ${{ matrix.features }} fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - run: rustup component add clippy - uses: actions-rs/cargo@v1 with: command: clippy args: --all -- -D warnings