log4rs 1.2.0

A highly configurable multi-output logging implementation for the `log` facade
Documentation
name: CI

on:
  push:
    branches:
    - master
    - devel
  pull_request:
    branches:
    - master
    - devel

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the source code
        uses: actions/checkout@master

      - name: Install Rust stable
        run: |
          rustup toolchain update --no-self-update stable
          rustup default stable
          rustup component add clippy rustfmt

      - name: Run rustfmt
        run: cargo fmt -- --check

      - name: Run clippy
        run: cargo clippy --all-features
        env:
          RUSTFLAGS: -D warnings

  test:
    name: Test
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        rust_versions: ["stable", "1.56"]
        os: [ubuntu-latest, windows-latest]
    steps:
      - name: Checkout the source code
        uses: actions/checkout@master

      - name: Install Rust Versions
        run: |
          rustup toolchain install --no-self-update ${{ matrix.rust_versions }}
          rustup default stable

      - name: Build lib
        run: rustup run ${{ matrix.rust_versions }} cargo build ${{ matrix.cargo_build_flags }}

      - name: test lib
        run: cargo test --all-features
        env:
          RUSTFLAGS: -D warnings

  features:
    name: Test Individual Features
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the source code
        uses: actions/checkout@master

      - name: Install Rust toolchain and jq
        run: |
          rustup toolchain install --no-self-update stable
          rustup default stable
          sudo apt-get install -y --no-install-recommends jq

      - name: Test lib
        run: |
          for feature in $(cargo read-manifest | jq -r '.features|keys|join("\n")'); do
            echo building with feature "$feature"
            RUSTFLAGS='-D warnings' cargo test --no-default-features --features "$feature"
          done

  bench:
    name: Benchmark the background_rotation feature
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust_versions: ["stable", "1.56"]
    steps:
      - name: Checkout the source code
        uses: actions/checkout@master

      - name: Install Rust toolchain
        run: |
          rustup toolchain install --no-self-update stable
          rustup default stable

      - name: Rotation with backgrounded rotation
        run: cargo bench  --features gzip,background_rotation