chore: migrate build system to hatch, switch dependency management to uv, and update CI workflow
This commit is contained in:
68
.github/workflows/python-test-and-build.yml
vendored
68
.github/workflows/python-test-and-build.yml
vendored
@@ -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 }}
|
||||
Reference in New Issue
Block a user