name: Deploy Python Package
on: [push]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - name: Set up Python 3.13
      uses: actions/setup-python@v5
      with:
        python-version: "3.13"

    - name: Install Node.js, NPM and Yarn
      uses: actions/setup-node@v4
      with:
        node-version: 22

    - name: Install Linux dependencies
      run: |
        sudo apt install -y portaudio19-dev libhamlib-dev libhamlib-utils build-essential cmake patchelf

    - name: Install Python dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
        pip install wheel

    - name: Build GUI
      working-directory: freedata_gui
      run: |
        npm i
        npm run build

    - name: Build package
      run: |
        python setup.py sdist bdist_wheel

    - name: Publish to PyPI
      uses: pypa/gh-action-pypi-publish@v1.12.4
      if: startsWith(github.ref, 'refs/tags/v')
      with:
        user: __token__
        password: ${{ secrets.PYPI_API_TOKEN }}
