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@v4 - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt - run: cargo fmt --all --check test: name: Test needs: [style] runs-on: ubuntu-latest env: RUSTFLAGS: -Dwarnings strategy: matrix: rust: - beta - stable steps: - name: Checkout uses: actions/checkout@v4 - name: Install Rust (${{ matrix.rust }}) uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - name: Install libssl-dev run: sudo apt-get update && sudo apt-get install libssl-dev - name: Build without unstable flag run: cargo build - name: Check with unstable flag run: cargo check --features unstable - name: Run lib tests and doc tests run: cargo test - name: Run integration tests run: cargo test -p h2-tests - name: Run h2spec run: ./ci/h2spec.sh if: matrix.rust == 'stable' #clippy_check: # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v4 # - name: Run Clippy # run: cargo clippy --all-targets --all-features msrv: name: Check MSRV needs: [style] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Get MSRV from package metadata id: msrv run: grep rust-version Cargo.toml | cut -d '"' -f2 | sed 's/^/version=/' >> $GITHUB_OUTPUT - name: Install Rust (${{ steps.metadata.outputs.msrv }}) id: msrv-toolchain uses: dtolnay/rust-toolchain@master with: toolchain: ${{ steps.msrv.outputs.version }} - run: cargo check -p h2 minimal-versions: runs-on: ubuntu-latest needs: [style] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@nightly - uses: dtolnay/rust-toolchain@stable - uses: taiki-e/install-action@cargo-hack - uses: taiki-e/install-action@cargo-minimal-versions - run: cargo minimal-versions --ignore-private check