name: CI on: pull_request: push: branches: - master env: RUST_BACKTRACE: 1 jobs: style: name: Check Style runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt - name: cargo fmt --check uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check test: name: Test ${{ matrix.rust }} on ${{ matrix.os }} needs: [style] strategy: matrix: rust: - stable - beta - nightly - 1.39.0 os: - ubuntu-latest - windows-latest - macOS-latest include: - rust: stable features: "" - rust: beta features: "" - rust: nightly features: "--features nightly" benches: true runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v1 - name: Install Rust (${{ matrix.rust }}) uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true - name: Test uses: actions-rs/cargo@v1 with: command: test args: ${{ matrix.features }} - name: Test all benches if: matrix.benches uses: actions-rs/cargo@v1 with: command: test args: --benches ${{ matrix.features }} features: name: Test Feature ${{ matrix.features }} needs: [style] strategy: matrix: features: - "--features __internal_happy_eyeballs_tests" - "--no-default-features --features tcp" - "--no-default-features" runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Test uses: actions-rs/cargo@v1 with: command: test args: ${{ matrix.features }} doc: name: Build docs needs: [style, test] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true - name: cargo doc uses: actions-rs/cargo@v1 with: command: rustdoc args: -- -D broken-intra-doc-links