name: Publish Python SDK 

on:
  push:
    branches:
      - main
    paths:
      - 'apps/python-sdk/**'

env:
  PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
  PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}

jobs:
  build-and-publish:
    runs-on: blacksmith-2vcpu-ubuntu-2404

    steps:
      - name: Checkout repository
        uses: actions/checkout@v5

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

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install setuptools wheel twine build requests packaging

      - name: Run version check script
        id: version_check_script
        run: |
          VERSION_INCREMENTED=$(python .github/scripts/check_version_has_incremented.py python ./apps/python-sdk/firecrawl firecrawl-py)
          echo "VERSION_INCREMENTED=$VERSION_INCREMENTED" >> $GITHUB_ENV

      - name: Build and publish to PyPI
        if: ${{ env.VERSION_INCREMENTED == 'true' }}
        env:
          TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
          TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
        run: |
          python -m build
          twine upload dist/*
          sed -i 's/name = "firecrawl-py"/name = "firecrawl"/g' pyproject.toml
          sed -i 's/name="firecrawl-py"/name="firecrawl"/g' setup.py
          python -m build
          twine upload dist/*
        working-directory: ./apps/python-sdk

