fix: Correct test failures from refactoring #109
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/ |