name: Standard Check

on: [push, pull_request]

jobs:
    # ensure the toolchain is cached
    ensure-toolchain:
        uses: ./.github/workflows/cache-toolchain.yml

    fmt:
        name: fmt check
        runs-on: ubuntu-latest
        needs: [ensure-toolchain]
        steps:
            - uses: actions/checkout@v3
            - name: Cache build tools
              id: cache-build-tools
              uses: actions/cache@v3
              env:
                  cache-name: cache-build-tools
                  dadk_version: 0.1.2
              with:
                path: |
                  ~/.cargo
                  ~/.rustup
                  ~/.bashrc
                key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.dadk_version }}-${{ hashFiles('.github/workflows/cache-toolchain.yml') }}

            - name: Check format
              run: |
                    make fmt-check

    build:
      name: build check
      runs-on: ubuntu-latest
      needs: [ensure-toolchain]
      steps:
          - uses: actions/checkout@v3
          - name: Cache build tools
            id: cache-build-tools
            uses: actions/cache@v3
            env:
                cache-name: cache-build-tools
                dadk_version: 0.1.2
            with:
              path: |
                ~/.cargo
                ~/.rustup
                ~/.bashrc
              key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.dadk_version }}-${{ hashFiles('.github/workflows/cache-toolchain.yml') }}

          - name: Build check
            run: |
                  make build-release -j $(nproc)
