Skip to content

0.14.4

0.14.4 #68

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- main
tags-ignore:
- '*'
pull_request:
branches:
- main
jobs:
ci:
name: CI - Code Quality and Documentation Build
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.11, 3.12, 3.13]
fail-fast: true
timeout-minutes: 20
env:
UV_CACHE_DIR: /tmp/uv-cache-${{ matrix.python-version }}
steps:
- name: Setup | Checkout Repository
uses: actions/[email protected]
with:
fetch-depth: 0
persist-credentials: false
- name: Setup | UV Environment
uses: astral-sh/[email protected]
with:
enable-cache: true
cache-dependency-glob: uv.lock
- name: Cache UV Dependencies
uses: actions/[email protected]
with:
path: ${{ env.UV_CACHE_DIR }}
key: "uv-${{ matrix.python-version }}-${{ runner.os }}-${{ hashFiles('uv.lock') }}"
restore-keys: |
uv-${{ matrix.python-version }}-${{ runner.os }}
- name: Install and Sync Dependencies
run: uv sync
- name: Run Code Quality Checks (Formatting, Linting, Type Checks, Tests)
run: |
uv run ruff format ./
uv run ruff check --fix ./
uv run mypy ./
uv run pytest ./
- name: Build Documentation
if: matrix.python-version == '3.11'
run: uv run --group=docs make clean html --directory docs/
- name: Deploy Documentation to GitHub Pages
if: success() && matrix.python-version == '3.11'
uses: peaceiris/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/_build/html
- name: Scan Codebase with SonarCloud
if: matrix.python-version == '3.11'
uses: SonarSource/[email protected]
env:
SONAR_TOKEN: '${{ secrets.SONAR_TOKEN }}'
- name: Upload Test Coverage Report to Codecov
if: success() && matrix.python-version == '3.11'
uses: codecov/[email protected]
with:
token: '${{ secrets.CODECOV_TOKEN }}'
file: ./coverage-3.11.xml
fail_ci_if_error: true
- name: Minimize UV Cache
run: uv cache prune --ci