name: AVR Build

on:
  push:
    branches:
      - dev
      - live
      - main
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest

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

      - name: Install AVR toolchain
        run: |
          apt-get update
          apt-get install -y gcc-avr avr-libc binutils-avr make cppcheck

      - name: Set build type from branch
        id: vars
        run: |
          BRANCH="${GITHUB_REF_NAME}"

          if [ "$BRANCH" = "dev" ]; then
            echo "BUILD_TYPE=dev" >> $GITHUB_ENV
            echo "PREFIX=DEV_ENO" >> $GITHUB_ENV
          else
            echo "BUILD_TYPE=live" >> $GITHUB_ENV
            echo "PREFIX=ENO" >> $GITHUB_ENV
          fi

          echo "VERSION=${GITHUB_SHA::7}" >> $GITHUB_ENV

      - name: Code check
        run: cppcheck --enable=all --error-exitcode=1 src/

      - name: Build firmware
        run: |
          make BUILD_TYPE=$BUILD_TYPE PREFIX=$PREFIX VERSION=$VERSION

      - name: Upload hex
        uses: actions/upload-artifact@v4
        with:
          name: firmware-${{ env.BUILD_TYPE }}
          path: build/**/*.hex