logroller 0.1.12

A feature-rich log rotation library with timezone support, flexible rotation strategies, and compression, integrating seamlessly with the tracing ecosystem.
Documentation
name: CI

on:
  push:
    branches: ["*"]
  pull_request:
    branches: ["*"]

env:
  CARGO_TERM_COLOR: always

jobs:
  build-and-test-stable:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Run cargo clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --all-targets --all-features -- -D warnings
      - name: Build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --verbose
      - name: Run tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --verbose

  build-and-test-nightly:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
      - name: Run cargo clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --all-targets --all-features -- -D warnings
      - name: Build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --verbose
      - name: Run tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --verbose

  build-and-test-windows:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --verbose
      - name: Run tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --verbose

  msrv-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: "1.71"
      - name: Build (MSRV)
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --all-features --verbose
      - name: Test (MSRV)
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features --verbose

  build-and-test-macos:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --verbose
      - name: Run tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --verbose

  cargo-doc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Build docs
        uses: actions-rs/cargo@v1
        env:
          RUSTDOCFLAGS: "-D warnings"
        with:
          command: doc
          args: --all-features --no-deps --document-private-items
      - name: Run doc tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --doc --all-features

  security-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Generate Cargo.lock
        run: cargo generate-lockfile
      - name: Run cargo audit
        uses: rustsec/audit-check@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}