name: CI on: push: branches: [ main ] pull_request: branches: [ main ] env: CARGO_TERM_COLOR: always jobs: test: name: Test Suite runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - 1.65.0 # MSRV from Cargo.toml steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - uses: Swatinem/rust-cache@v2 - name: Run tests run: cargo test --verbose - name: Run tests with all features run: cargo test --all-features --verbose feature-tests: name: Feature Tests runs-on: ubuntu-latest strategy: matrix: features: - "text" - "unicode" - "bytes" - "inline" - "serde" - "text,unicode" - "text,bytes" - "text,inline" - "text,serde" - "text,unicode,bytes" - "text,unicode,inline" - "text,unicode,serde" - "text,bytes,inline" - "text,bytes,serde" - "text,inline,serde" - "unicode,bytes,inline,serde" steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: Test with features ${{ matrix.features }} run: cargo test --features ${{ matrix.features }} --verbose fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt - name: Run rustfmt run: cargo fmt --all -- --check