ltc681x 0.6.2

Client LTC681X battery monitoring family
Documentation
name: QA

on:
  push:
  pull_request:
    branches:
      - master

env:
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: full

jobs:
  test:
    name: Tests
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
        rust:
          - stable
          - beta
          - nightly

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

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

      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          default: true
          profile: minimal

      - name: Restore cache
        uses: Swatinem/rust-cache@v1

      - name: Build & test
        env:
          RUST_VERSION: ${{ matrix.rust }}
          OS: ${{ matrix.os }}
          RUSTFLAGS: -D warnings
        run: cargo test --features strict

      - name: Build default features
        run: cargo build --release --features strict

  no_std_builds:
    name: Build no_std targets
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target:
          - thumbv6m-none-eabi
          - thumbv7m-none-eabi
          - thumbv8m.main-none-eabihf
          - riscv32imac-unknown-none-elf
        rust:
          - stable
          - beta
          - nightly
    steps:
      - name: checkout
        uses: actions/checkout@v2

      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          target: ${{ matrix.target }}
          default: true
          profile: minimal

      - name: Restore cache
        uses: Swatinem/rust-cache@v1

      - name: Build
        run: cargo build --release --target ${{ matrix.target }} --features default,strict

  code_style:
    name: Check code style
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2

      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          default: true
          components: rustfmt

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

  documentation:
    name: Check documentation
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2

      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          default: true

      - name: Restore cache
        uses: Swatinem/rust-cache@v1

      - name: Check documentation
        run: cargo rustdoc -- -D warnings

  clippy:
    name: Linting
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2

      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          default: true

      - name: Restore cache
        uses: Swatinem/rust-cache@v1

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