feat: Geist true-black dark theme with WCAG AA contrast #134
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: [master] | |
| pull_request: | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Install deps | |
| run: uv sync --extra dev | |
| - name: Lint | |
| run: uv run ruff check | |
| - name: Type check | |
| run: uv run mypy | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.11", "3.12"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Install deps | |
| run: uv sync --extra dev | |
| - name: Unit tests with coverage | |
| run: > | |
| uv run pytest | |
| --cov=excelbench | |
| --cov-report=term-missing | |
| --cov-report=xml:coverage.xml | |
| --cov-fail-under=65 | |
| -v | |
| - name: Upload coverage report | |
| if: always() && matrix.python-version == '3.11' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-report | |
| path: coverage.xml | |
| benchmark: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Install deps | |
| run: uv sync --extra dev | |
| - name: Run benchmark (fixtures) | |
| run: | | |
| if [ -f fixtures/excel/manifest.json ]; then | |
| uv run excelbench benchmark --tests fixtures/excel --output /tmp/excelbench-results | |
| else | |
| echo "fixtures/excel/manifest.json missing; skipping benchmark." | |
| fi | |
| - name: Upload results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: excelbench-results | |
| path: /tmp/excelbench-results/results.json | |
| if-no-files-found: ignore | |
| rust_smoke: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Install deps (dev + rust) | |
| run: uv sync --extra dev --extra rust | |
| - name: Verify wolfxl install | |
| run: uv run python -c "from wolfxl._rust import build_info; print(build_info())" | |
| - name: Rust integration tests | |
| run: uv run pytest tests/test_rust_integration.py -v |