defmt-errors 0.0.0

Generate error types for use in embedded systems using defmt to print them.
Documentation
name: CI

on:
  pull_request:
    branches: [ main ]

env:
  CARGO_TERM_COLOR: always

jobs:
  conventional-commits:
    runs-on: ubuntu-latest
    steps:
      - name: Check for Conventional Commits
        uses: wtfiscrq/conventional-commits-action@1.0.1

  audit:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Audit Rust Dependencies
        uses: actions-rust-lang/audit@v1
        with:
          createIssues: false

  format:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Install toolchain with required components
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: rustfmt

      - name: Check formatting of Rust code with rustfmt
        uses: actions-rust-lang/rustfmt@v1

  clippy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Install toolchain with required components
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: clippy

      - name: Check for code lints
        uses: LoliGothick/clippy-check@v0.3.1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Install toolchain with required components
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: llvm-tools-preview

      - name: Install cargo-make
        uses: baptiste0928/cargo-install@v2.1.0
        with:
          crate: cargo-make

      - name: Run all tests
        uses: ClementTsang/cargo-action@v0.0.4
        with:
          command: make
          args: test

      - name: Get code coverage of unit tests
        uses: ClementTsang/cargo-action@v0.0.4
        with:
          command: make
          args: coverage-flow

      - name: Upload coverage reports to Codecov
        uses: codecov/codecov-action@v3
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: coverage.json

  make:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Install toolchain with required components
        uses: actions-rust-lang/setup-rust-toolchain@v1

      - name: Install cargo-make
        uses: baptiste0928/cargo-install@v2.1.0
        with:
          crate: cargo-make

      - name: Run `ci-flow` make recipe
        uses: ClementTsang/cargo-action@v0.0.4
        with:
          command: make
          args: ci-flow