name: Publish PyPI on: release: types: - published permissions: contents: read concurrency: group: publish-pypi cancel-in-progress: false jobs: build: name: Build Distributions runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install just uses: taiki-e/install-action@just - name: Install uv uses: astral-sh/setup-uv@v6 with: enable-cache: true cache-dependency-glob: | pyproject.toml uv.lock - name: Install dependencies run: uv sync --all-extras --all-groups - name: Build distributions run: just build-dist - name: Upload distributions uses: actions/upload-artifact@v4 with: name: release-dists path: dist/ publish: name: Publish to PyPI needs: build runs-on: ubuntu-latest environment: name: pypi url: https://pypi.org/p/batdetect2 steps: - name: Download distributions uses: actions/download-artifact@v5 with: name: release-dists path: dist/ - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: password: ${{ secrets.PYPI_API_TOKEN }}