name: PlatformIO CI

on:
  push:
    branches: [ master ]
    paths:
        - 'esp32/**'  
  pull_request:
    branches: [ master ]
    paths:
        - 'esp32/**'  

jobs:
  build:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./esp32

    steps:
      - uses: actions/checkout@v3
      - uses: actions/cache@v3
        with:
          path: |
            ~/.cache/pip
            ~/.platformio/.cache
          key: ${{ runner.os }}-pio

      - uses: actions/setup-python@v4
        with:
          python-version: '3.x'
      - run: pip install -r ./scripts/requirements.txt
      - name: Install PlatformIO Core
        run: pip install --upgrade platformio

      - name: Build PlatformIO Project
        run: pio run

      - name: Upload Artifacts
        uses: actions/upload-artifact@v3
        with:
          name: build-artifacts
          path: esp32/build/firmware
