name: Continuous integration on: push: branches: - master tags: - v* paths-ignore: - 'README.md' pull_request: branches: - master jobs: check-style: name: Check style runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.4.0 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true components: clippy, rustfmt - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo fmt uses: actions-rs/cargo@v1.0.3 with: command: fmt args: --all -- --check - name: Cargo clippy uses: actions-rs/cargo@v1.0.3 with: command: clippy args: --all-targets - name: Check rustdoc links run: RUSTDOCFLAGS="--deny broken_intra_doc_links" cargo doc --verbose --workspace --no-deps --document-private-items check-code: name: Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.4.0 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Install cargo-hack run: cargo install cargo-hack - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo check all targets and features run: cargo hack check --workspace --each-feature --all-targets tests_ubuntu: name: Run nextests on Ubuntu runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2.4.0 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Install cargo-nextest uses: baptiste0928/cargo-install@v1 with: crate: cargo-nextest version: 0.9 - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo nextest run: cargo nextest run --workspace tests_macos: name: Run tests macos runs-on: macos-latest steps: - name: Checkout sources uses: actions/checkout@v2.4.0 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Install cargo-nextest uses: baptiste0928/cargo-install@v1 with: crate: cargo-nextest version: 0.9 - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo nextest run: cargo nextest run --workspace tests_windows: name: Run tests Windows runs-on: windows-latest steps: - name: Checkout sources uses: actions/checkout@v2.4.0 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Install cargo-nextest uses: baptiste0928/cargo-install@v1 with: crate: cargo-nextest version: 0.9 - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo nextest run: cargo nextest run --workspace