name: CI on: push: branches: - master pull_request: {} jobs: rustfmt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: hecrj/setup-rust-action@v1 with: components: rustfmt - run: cargo fmt --all --check check: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macOS-latest, windows-latest] rust: [stable] env: RUSTFLAGS: "-D warnings" steps: - uses: hecrj/setup-rust-action@v1 with: rust-version: ${{ matrix.rust }} - uses: actions/checkout@v3 - name: Install cargo-hack uses: baptiste0928/cargo-install@v1 with: crate: cargo-hack - name: Install cargo-machete uses: baptiste0928/cargo-install@v1 with: crate: cargo-machete - name: Install protoc uses: taiki-e/install-action@v2 with: tool: protoc@3.20.3 - uses: Swatinem/rust-cache@v2 - name: Check unused dependencies run: cargo machete - name: Check features run: cargo hack check --all --ignore-private --each-feature --no-dev-deps - name: Check all targets run: cargo check --all --all-targets --all-features check-docs: name: check docs runs-on: ubuntu-latest env: RUSTFLAGS: "-D warnings" steps: - uses: actions/checkout@v3 - name: Install protoc uses: taiki-e/install-action@v2 with: tool: protoc@3.20.3 - uses: hecrj/setup-rust-action@v1 with: rust-version: "1.60" - uses: Swatinem/rust-cache@v2 - name: cargo doc run: cargo doc --workspace --no-deps --exclude examples deny-check: name: cargo-deny check runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: EmbarkStudios/cargo-deny-action@v1 msrv: name: Check MSRV runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - uses: hecrj/setup-rust-action@v1 with: rust-version: "1.60" - name: Install protoc uses: taiki-e/install-action@v2 with: tool: protoc@3.20.3 - name: Check run: cargo check --all --all-targets --all-features test: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macOS-latest, windows-latest] rust: [stable] env: RUSTFLAGS: "-D warnings" # run a lot of quickcheck iterations QUICKCHECK_TESTS: 1000 steps: - uses: hecrj/setup-rust-action@v1 with: rust-version: ${{ matrix.rust }} - name: Install protoc uses: taiki-e/install-action@v2 with: tool: protoc@3.20.3 - uses: Swatinem/rust-cache@v2 - uses: actions/checkout@v3 - name: Run tests run: cargo test --all --all-features interop: name: Interop Tests runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macOS-latest, windows-latest] rust: [stable] env: RUSTFLAGS: "-D warnings" steps: - uses: hecrj/setup-rust-action@v1 with: rust-version: ${{ matrix.rust }} - uses: actions/checkout@v3 - name: Install protoc uses: taiki-e/install-action@v2 with: tool: protoc@3.20.3 - uses: Swatinem/rust-cache@v2 - name: Run interop tests run: ./interop/test.sh shell: bash - name: Run interop tests with Rustls run: ./interop/test.sh --use_tls tls_rustls shell: bash