name: CI on: push: branches: [main] pull_request: branches: [main] env: CARGO_TERM_COLOR: always jobs: fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt - run: cargo fmt --all --check clippy: name: Clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: clippy - name: Clippy (all features) run: cargo clippy --all-features -- -D warnings - name: Clippy (no default features) run: cargo clippy --no-default-features -- -D warnings test-matrix: name: Test (${{ matrix.name }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: default features flags: "" - name: all features flags: "--all-features" - name: io only flags: "--no-default-features --features io" - name: compute only flags: "--no-default-features --features compute" - name: bg only flags: "--no-default-features --features bg" - name: resiliency only flags: "--no-default-features --features resiliency" - name: traffic only flags: "--no-default-features --features traffic" - name: lifecycle only flags: "--no-default-features --features lifecycle" - name: observability only flags: "--no-default-features --features observability" steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Build run: cargo build --all-targets ${{ matrix.flags }} - name: Test run: cargo test ${{ matrix.flags }} example: name: Run example runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - run: cargo run --example main --features full docs: name: Docs check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - run: RUSTDOCFLAGS="-D warnings" cargo doc --all-features --no-deps package: name: Cargo package dry-run runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Package run: cargo package --no-verify