name: Ahoy Dev-Build for ESP8266/ESP32

on:
  push:
    branches: development*
    paths-ignore:
    - '**.md' # Do no build on *.md changes
jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
      with:
        ref: development03
    - uses: benjlevesque/short-sha@v1.2
      id: short-sha
      with:
        length: 7
    - name: cache-pip
      uses: actions/cache@v3
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-pip-
    - name: cache-platformio
      uses: actions/cache@v3
      with:
        path: ~/.platformio
        key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
    - name: setup-python
      uses: actions/setup-python@v3
    - name: install-platformio
      run: |
        python -m pip install --upgrade pip
        pip install --upgrade platformio
    - name: update-html
      working-directory: tools/esp8266/html
      run: python convert.py
    - name: Run PlatformIO
      run: pio run -d tools/esp8266 --environment esp8266-release --environment esp32-wroom32-release
    - name: rename-binary-files
      id: rename-binary-files
      working-directory: tools/esp8266/scripts
      run: python getVersion.py
    - name: set-version
      uses: cschleiden/replace-tokens@v1
      with:
        files: tools/esp8266/User_Manual.md
      env:
          VERSION: ${{ steps.rename-binary-files.outputs.name }}
    - name: create-artifact
      run: zip  --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip tools/esp8266/.pio/build/out/* tools/esp8266/User_Manual.md
    - uses: actions/upload-artifact@v3
      with:
        name: ${{ steps.rename-binary-files.outputs.name }}_dev_build
        path: ./${{ steps.rename-binary-files.outputs.name }}.zip