This commit is contained in:
David Soria Parra 2024-11-18 15:06:52 +00:00
commit 918e8c9cba
No known key found for this signature in database
4 changed files with 564 additions and 62 deletions

9
.github/workflows/main-checks.yml vendored Normal file
View file

@ -0,0 +1,9 @@
name: Main branch checks
on:
push:
branches: [main]
jobs:
checks:
uses: ./.github/workflows/shared.yml

55
.github/workflows/publish-pypi.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Publishing
on:
release:
types: [published]
jobs:
release-build:
name: Build distribution
runs-on: ubuntu-latest
needs: [checks]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- name: Install the project
run: uv sync --frozen --all-extras --dev
- name: Build
run: uv build
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: release-dists
path: dist/
checks:
uses: ./.github/workflows/shared.yml
pypi-publish:
name: Upload release to PyPI
runs-on: ubuntu-latest
environment: release
needs:
- release-build
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
- name: Retrieve release distributions
uses: actions/download-artifact@v4
with:
name: release-dists
path: dist/
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

View file

@ -0,0 +1,8 @@
name: Pull request checks
on:
pull_request:
jobs:
checks:
uses: ./.github/workflows/shared.yml

47
.github/workflows/shared.yml vendored Normal file
View file

@ -0,0 +1,47 @@
name: Shared Checks
on:
workflow_call:
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- name: Install the project
run: uv sync --frozen --all-extras --dev
- name: Run ruff format check
run: uv run --frozen ruff check .
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"
- name: Install the project
run: uv sync --frozen --all-extras --dev
- name: Run pyright
run: uv run --frozen pyright