name: CI on: push: branches: - master pull_request: {} jobs: 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 }} components: rustfmt - uses: actions/checkout@v3 - name: Install cargo-hack uses: baptiste0928/cargo-install@v1 with: crate: cargo-hack - name: Install Protoc uses: arduino/setup-protoc@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: Swatinem/rust-cache@v2 - name: Check fmt run: cargo fmt -- --check - 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 clippy: name: cargo clippy runs-on: ubuntu-latest env: RUSTFLAGS: "-A unknown_lints -D warnings" steps: - uses: actions/checkout@v3 - uses: hecrj/setup-rust-action@v1 with: rust-version: "1.60" components: clippy - name: Install Protoc uses: arduino/setup-protoc@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: Swatinem/rust-cache@v2 - name: Run cargo clippy run: cargo clippy --workspace --all-targets --all-features 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: arduino/setup-protoc@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - 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 }} components: rustfmt - name: Install Protoc uses: arduino/setup-protoc@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - 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 }} components: rustfmt - uses: actions/checkout@v3 - name: Install Protoc uses: arduino/setup-protoc@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - 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