name: Build

on: 
  push:
    paths: 
      - src/**
      - lib/**
      - scripts/**
      - web/**
      - platformio.ini
    branches:
      - '*'
    tags:
      - '*'
      - '!v*.*.*'

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Check out code from repo
      uses: actions/checkout@v1
    - name: Cache Python dependencies
      uses: actions/cache@v1
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('platformio.ini') }}
    - name: Cache PlatformIO dependencies
      uses: actions/cache@v1
      with:
        path: ~/.pio/libdeps
        key: ${{ runner.os }}-pio-${{ hashFiles('platformio.ini') }}
    - name: Set up Python 3.9
      uses: actions/setup-python@v1
      with:
        python-version: 3.9
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -U platformio css_html_js_minify
    - name: PlatformIO lib install
      run: pio lib install
    - name: PlatformIO run
      run: pio run
