name: "Install and build"
description: "Install and build"

runs:
  using: "composite"
  steps:
    - uses: actions/setup-node@v4
      with:
        node-version: lts/*
        cache: yarn
        cache-dependency-path: '**/yarn.lock'
    - uses: actions/cache@v3
      with:
        path: |
          ~/.cache/pip
          ~/.platformio/.cache
          ~/data/node_modules
        key: ${{ runner.os }}-pio
    - uses: actions/setup-python@v4
      with:
        python-version: '3.9'
    - name: Get current date
      id: dateAndTime
      shell: bash
      run: echo "dateAndTime=$(date +'%Y-%m-%d-%H:%M')" >> $GITHUB_OUTPUT
    - name: Install PlatformIO Core
      shell: bash
      run: pip install --upgrade platformio
    - name: Run unit tests
      shell: bash
      run: mkdir -p junit-reports && pio test -e native_test_only --junit-output-path junit-reports/
    - name: Publish Test Report
      uses: mikepenz/action-junit-report@v4
      if: success() || failure() # always run even if the previous step fails
      with:
        report_paths: '**/junit-reports/*.xml'
        detailed_summary: true
    - name: Build BTClock firmware
      shell: bash
      run: pio run -e lolin_s3_mini_qr 
    - name: Build BTClock filesystem
      shell: bash
      run: pio run -e lolin_s3_mini_qr --target buildfs