Skip to content

fix: Correct test failures from refactoring #109

fix: Correct test failures from refactoring

fix: Correct test failures from refactoring #109

Workflow file for this run

name: CI
on:
push:
branches: [ main, claude/* ]
pull_request:
branches: [ main ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Format check with black
run: |
black --check cli/
- name: Lint with ruff
run: |
ruff check cli/
- name: Type check with mypy
run: |
mypy cli/ --ignore-missing-imports
continue-on-error: true
test:
runs-on: ubuntu-latest
needs: lint
strategy:
matrix:
python-version: ['3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
- name: Run tests with coverage
run: |
pytest tests/ -v --cov=xml_lib --cov-report=xml --cov-report=term
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: ./coverage.xml
flags: unittests
name: codecov-${{ matrix.python-version }}
validate:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install xml-lib
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
- name: Validate existing XML documents
run: |
xml-lib validate . --output out/assertions.xml --jsonl out/assertions.jsonl
continue-on-error: true
- name: Upload validation artifacts
uses: actions/upload-artifact@v4
with:
name: validation-results
path: |
out/assertions.xml
out/assertions.jsonl
publish:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install xml-lib
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
- name: Publish documentation
run: |
xml-lib publish . --output-dir out/site --math-policy sanitize
- name: Upload published site
uses: actions/upload-artifact@v4
with:
name: documentation-site
path: out/site/
- name: Upload mapping artifacts
uses: actions/upload-artifact@v4
with:
name: mathmap-artifacts
path: out/mappings/
if: always()
benchmark:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install xml-lib
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
- name: Run benchmarks
run: |
pytest tests/benchmark/ -v --benchmark-only --benchmark-min-rounds=5
phpify:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
tools: php-cs-fixer
- name: Install xml-lib
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
- name: Generate PHP from example XMLs
run: |
mkdir -p out/php
xml-lib phpify example_document.xml -o out/php/example_document.php
xml-lib phpify example_amphibians.xml -o out/php/example_amphibians.php --template minimal
xml-lib phpify example_research_pitch.xml -o out/php/example_research_pitch.php
- name: Lint generated PHP files
run: |
php -l out/php/example_document.php
php -l out/php/example_amphibians.php
php -l out/php/example_research_pitch.php
- name: Run phpify tests
run: |
pytest tests/test_phpify.py -v
- name: Upload PHP artifacts
uses: actions/upload-artifact@v4
with:
name: generated-php-pages
path: |
out/php/
out/assets/