email-clients 0.2.0

This is library that provides user with easy to use email clients collection in rust.
Documentation
name: Test

on:
  pull_request:
  push:
    branches:
      - master

env:
  RUST_BACKTRACE: full

jobs:
  rustfmt:
    name: rustfmt
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Install rust
        run: |
          rustup default
          rustup component add rustfmt

      - name: cargo fmt
        run: cargo fmt --all -- --check

  clippy:
    name: clippy / stable
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Install rust
        run: |
          rustup update --no-self-update stable
          rustup component add clippy

      - name: Run clippy
        run: cargo clippy --all-features --all-targets -- -D warnings

  check:
    name: check / stable
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Install rust
        run: rustup update --no-self-update stable

      - name: Setup cache
        uses: Swatinem/rust-cache@v2

      - name: Install cargo hack
        run: cargo install cargo-hack --debug

      - name: Check with cargo hack
        run: cargo hack check --feature-powerset

  test:
    name: test / ${{ matrix.name }}
    runs-on: ubuntu-latest

    strategy:
      matrix:
        include:
          - name: stable
            rust: stable
          - name: beta
            rust: beta
          - name: '1.70'
            rust: '1.70'

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Install rust
        run: |
          rustup default ${{ matrix.rust }}
          rustup update --no-self-update ${{ matrix.rust }}

      - name: Setup cache
        uses: Swatinem/rust-cache@v2

      - name: Install postfix
        run: |
          DEBIAN_FRONTEND=noninteractive sudo apt-get update
          DEBIAN_FRONTEND=noninteractive sudo apt-get -y install postfix

      - name: Run SMTP server
        run: smtp-sink 2525 1000&

      - name: Install cargo hack
        run: cargo install cargo-hack --debug

      - name: Test with hack
        run: cargo hack test  --feature-powerset
  coverage:
    name: coverage
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

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

      - name: Setup cache
        uses: Swatinem/rust-cache@v2

      - name: Install postfix
        run: |
          DEBIAN_FRONTEND=noninteractive sudo apt-get update
          DEBIAN_FRONTEND=noninteractive sudo apt-get -y install postfix

      - name: Run SMTP server
        run: smtp-sink 2525 1000&

      - name: Install cargo tarpaulin
        run: cargo install cargo-tarpaulin

      - name: Generate code coverage
        run: |
          cargo tarpaulin --all-features --doc --tests --out xml

      - name: Upload to codecov.io
        uses: codecov/codecov-action@v4.0.1
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          fail_ci_if_error: true