simple_logger 4.1.0

A logger that prints all messages with a readable output format
Documentation
---
name: ci

on:
  pull_request:
  push:
    branches:
      - main
  release:
    types:
      - created

env:
  # Just a reassurance to mitigate sudden network connection problems
  CARGO_NET_RETRY: 10
  RUSTUP_MAX_RETRIES: 10

  CARGO_INCREMENTAL: 0
  RUST_BACKTRACE: full

  # We don't need any debug symbols on ci, this also speeds up builds a bunch
  RUSTFLAGS: --deny warnings -Cdebuginfo=0
  RUSTDOCFLAGS: --deny warnings

jobs:
  rust-lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          components: rustfmt, clippy

      - run: cargo clippy --workspace
      - run: cargo fmt --all -- --check

  rust-test:
    runs-on: ${{ matrix.os }}

    continue-on-error: ${{ matrix.toolchain != 'stable' }}

    strategy:
      matrix:
        os:
          - ubuntu-latest
          - windows-latest
          - macos-latest
        toolchain:
          - stable
        features:
          - "colors"
          - "threads"
          - "timestamps"
          - "stderr"
        exclude:
          - os: macos-latest
            toolchain: stable
            features: "timestamps"
        include:
          - os: ubuntu-latest
            toolchain: beta
            features: "colors,threads,timestamps"
          - os: ubuntu-latest
            toolchain: nightly
            features: "colors,threads,timestamps,nightly"

    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.toolchain }}
          profile: minimal
      - run: cargo +${{ matrix.toolchain }} build --no-default-features --features ${{ matrix.features }}
      - run: cargo +${{ matrix.toolchain }} test --no-default-features --features ${{ matrix.features }}

  rust-publish-crates:
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    needs:
      - rust-lint
      - rust-test
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
      - run: cargo publish --token ${{ secrets.CRATES_TOKEN }}