name: publish on: workflow_dispatch: inputs: gitref: type: string description: 'what git tag to build (e.g. v0.0.74)' required: true jobs: build: name: 'Build and upload wheels' runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.gitref }} - name: Install uv uses: astral-sh/setup-uv@v3 with: version: 'latest' - name: Set up Python run: uv python install 3.12 - name: Install development dependencies run: uv sync --group dev - name: Build project run: uv build - name: Upload wheels uses: actions/upload-artifact@v4 with: name: wheels path: ./dist publish-to-pypi: name: 'Publish to PyPI' runs-on: ubuntu-latest needs: [build] environment: name: pypi url: https://pypi.org/p/pipecat-ai permissions: id-token: write steps: - name: Download wheels uses: actions/download-artifact@v4 with: name: wheels path: ./dist - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: verbose: true print-hash: true publish-to-test-pypi: name: 'Publish to Test PyPI' runs-on: ubuntu-latest needs: [build] environment: name: testpypi url: https://test.pypi.org/p/pipecat-ai permissions: id-token: write steps: - name: Download wheels uses: actions/download-artifact@v4 with: name: wheels path: ./dist - name: Publish to Test PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: verbose: true print-hash: true repository-url: https://test.pypi.org/legacy/