name: Publish plotstyle

on:
  push:
    tags:
      - "plotstyle-v*"

permissions:
  contents: read
  packages: write

jobs:
  publish:
    name: build-and-publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: astral-sh/setup-uv@v9.0.0
        with:
          python-version: "3.11"

      - name: Verify tag matches package version
        run: |
          tag_version="${GITHUB_REF_NAME#plotstyle-v}"
          pkg_version="$(uv version --short --package plotstyle)"
          if [ "$tag_version" != "$pkg_version" ]; then
            echo "Tag plotstyle-v$tag_version does not match pyproject.toml version $pkg_version" >&2
            exit 1
          fi

      - name: Build wheel and sdist
        run: uv build --package plotstyle -o dist

      - name: Publish to Gitea package registry
        env:
          UV_PUBLISH_USERNAME: ${{ github.actor }}
          UV_PUBLISH_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
        run: uv publish --publish-url "${{ github.server_url }}/api/packages/${{ github.repository_owner }}/pypi" dist/*
