Documentation
name: CI

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

env:
  CARGO_TERM_COLOR: always

jobs:
  lint:
    name: Coding style check
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
      - name: Install rust nightly toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: nightly
          components: rustfmt
      - name: Install rust stable toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable
          components: clippy
      - name: Run lint
        run: |
          cargo x lint

  unit-test:
    name: Unit test
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
      - name: Install rust toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable
          components: clippy
      - name: Install required tools
        run: |
          cargo x install-tools
      - name: Run tests
        run: |
          cargo x test