chore: migrate build system to hatch, switch dependency management to uv, and update CI workflow

This commit is contained in:
2026-02-28 18:58:24 -03:00
parent 636c65c07c
commit 2765e5b86c
5 changed files with 1472 additions and 871 deletions

View File

@@ -1,7 +1,7 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Upload DicePlayer to PyPI
name: build and upload
on:
push
@@ -13,24 +13,35 @@ jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.10"
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
run: |
poetry self add "poetry-dynamic-versioning[plugin]"
if [ -f pyproject.toml ]; then poetry install; fi
- name: Run unittest
run: |
poetry run python -m unittest
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
# Install a specific version of uv.
version: "0.9.15"
enable-cache: true
cache-dependency-glob: "uv.lock"
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Run unittest
run: |
uv run python -m unittest
pypi-upload:
needs: [test]
@@ -40,26 +51,27 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
run: |
poetry self add "poetry-dynamic-versioning[plugin]"
if [ -f pyproject.toml ]; then poetry install; fi
- name: Build Python Package
run: |
poetry build -f sdist
poetry install
echo "Builded DicePlayer - $(poetry version)"
- name: Configure PyPI
run: |
poetry config repositories.pypi https://upload.pypi.org/legacy/
poetry config pypi-token.pypi ${{secrets.PYPI_TOKEN}}
- name: Upload Python Package
run: |
poetry publish --repository pypi
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
# Install a specific version of uv.
version: "0.9.15"
enable-cache: true
cache-dependency-glob: "uv.lock"
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync
- name: Build source distribution
run: uv build --sdist
- name: Upload Python Package
run: |
uv publish -t ${{ secrets.PYPI_TOKEN }}