name: "Setup Build Base Composite Action"
description: "Base build actions for Meshtastic Platform IO steps"

runs:
  using: "composite"
  steps:
    - name: Checkout code
      uses: actions/checkout@v4
      with:
        submodules: "recursive"
        ref: ${{github.event.pull_request.head.ref}}
        repository: ${{github.event.pull_request.head.repo.full_name}}

    - name: Install dependencies
      shell: bash
      run: |
        sudo apt-get -y update --fix-missing
        sudo apt-get install -y cppcheck libbluetooth-dev libgpiod-dev libyaml-cpp-dev

    - name: Setup Python
      uses: actions/setup-python@v5
      with:
        python-version: 3.x

    # - name: Cache python libs
    #   uses: actions/cache@v4
    #   id: cache-pip # needed in if test
    #   with:
    #     path: ~/.cache/pip
    #     key: ${{ runner.os }}-pip

    - name: Upgrade python tools
      shell: bash
      run: |
        python -m pip install --upgrade pip
        pip install -U --no-build-isolation --no-cache-dir "setuptools<72"
        pip install -U platformio adafruit-nrfutil --no-build-isolation
        pip install -U poetry --no-build-isolation
        pip install -U meshtastic --pre --no-build-isolation

    - name: Upgrade platformio
      shell: bash
      run: |
        pio upgrade