name: Publish Python package on: push: tags: - "v*" workflow_dispatch: jobs: publish: runs-on: ubuntu-latest steps: - name: Fetch source archive env: REF: ${{ github.sha }} run: | set -eu mkdir -p buildctx wget -qO /tmp/repo.tar.gz \ "https://forgejo.coulomb.social/${GITHUB_REPOSITORY}/archive/${REF}.tar.gz" tar xzf /tmp/repo.tar.gz -C buildctx --strip-components=1 - name: Set up Python run: | python3 -m pip install --upgrade pip build twine - name: Build and validate distributions working-directory: buildctx run: | python3 -m build python3 -m twine check dist/* - name: Upload to Forgejo PyPI working-directory: buildctx env: TWINE_USERNAME: ${{ secrets.FORGEJO_PYPI_USER }} TWINE_PASSWORD: ${{ secrets.FORGEJO_PYPI_TOKEN }} run: >- python3 -m twine upload --repository-url https://forgejo.coulomb.social/api/packages/coulomb/pypi dist/*