Skip to content

Merge pull request #1 from lzjever/release/v0.4.0 #7

Merge pull request #1 from lzjever/release/v0.4.0

Merge pull request #1 from lzjever/release/v0.4.0 #7

Workflow file for this run

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: '3.14'
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Install dependencies
run: |
uv sync --group docs
- name: Run tests
run: |
uv run pytest tests/ \
--cov=serilux \
--cov-report=xml \
--cov-report=term-missing \
--cov-report=html \
-v
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage reports
uses: actions/upload-artifact@v4
if: always()
with:
name: coverage-report
path: htmlcov/
retention-days: 7
if-no-files-found: ignore
- name: Run linting
run: |
uv run ruff check serilux/ tests/ examples/
- name: Check formatting
run: |
uv run ruff format --check serilux/ tests/ examples/
- name: Type check (mypy) - non-blocking
run: |
uv run mypy serilux/ --ignore-missing-imports --no-strict-optional --no-strict || echo "mypy found issues (non-blocking)"
continue-on-error: true
build:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: '3.14'
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Install dependencies
run: |
uv sync --group docs
- name: Build package
run: |
uv run python -m build
- name: Check package
run: |
uv pip install twine
uv run twine check dist/*
docs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: '3.14'
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Install dependencies
run: |
uv sync --group docs
- name: Build documentation
run: |
uv run python -m sphinx -M html docs/source docs/build
- name: Upload documentation artifacts
uses: actions/upload-artifact@v4
with:
name: documentation
path: docs/build/html