name: Publish # Publishes the package to the Forgejo package registry (PyPI-compatible). # Trigger by pushing an annotated tag, e.g.: git tag v1.0.1 && git push origin main --tags # # Required repository secrets (Settings → Actions → Secrets): # FORGEJO_USERNAME your Forgejo username (e.g. moravak) # FORGEJO_TOKEN an access token with the `write:package` scope # # Uses `uv` for Python 3.12 (arm64-friendly); no actions/setup-python needed. on: push: tags: ["v*"] workflow_dispatch: permissions: contents: read env: # Forgejo's PyPI registry is /api/packages//pypi REGISTRY_URL: https://git.infrasynth.net/api/packages/moravak/pypi jobs: publish: name: Build & publish runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Build sdist + wheel run: | "$HOME/.local/bin/uv" venv --python 3.12 "$HOME/.local/bin/uv" pip install build twine .venv/bin/python -m build - name: Publish to Forgejo PyPI registry env: TWINE_USERNAME: ${{ secrets.FORGEJO_USERNAME }} TWINE_PASSWORD: ${{ secrets.FORGEJO_TOKEN }} run: | .venv/bin/twine upload --non-interactive --repository-url "$REGISTRY_URL" dist/*