trying to get sphinx to work nicely #17
This file contains 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 | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the code (this step pulls your repository code) | |
- name: Checkout the code | |
uses: actions/checkout@v4 | |
# Step 2: Set up Python | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
# Step 3: Create a virtual environment and install dependencies (including black, ruff, etc.) | |
- name: Install dependencies | |
run: | | |
python -m venv venv | |
source venv/bin/activate || .\venv\Scripts\activate # Linux/Windows compatible | |
python -m pip install --upgrade pip | |
pip install maturin | |
pip install -r requirements.txt | |
shell: bash | |
# Step 4: Run Ruff for linting and import sorting | |
- name: Run Ruff (Python linter) | |
run: | | |
source venv/bin/activate || .\venv\Scripts\activate | |
ruff check . --fix | |
shell: bash | |
# Step 5: Run Black to ensure code formatting (non-fix mode) | |
- name: Run Black (Python formatter check) | |
run: | | |
source venv/bin/activate || .\venv\Scripts\activate | |
black --check . | |
shell: bash | |
# Step 6: Build and install the Rust library using Maturin (in release mode) | |
- name: Build and install Rust library (release mode) | |
run: | | |
source venv/bin/activate || .\venv\Scripts\activate | |
maturin develop --release # Build the Rust library and install it | |
shell: bash | |
# Step 7: Run Python tests with pytest | |
- name: Run Python tests with pytest | |
run: | | |
source venv/bin/activate || .\venv\Scripts\activate | |
pytest tests/ # Run tests | |
shell: bash | |
# Step 8: Build Sphinx Documentation | |
- name: Build Sphinx Documentation | |
run: | | |
source venv/bin/activate || .\venv\Scripts\activate | |
cd docs | |
make html | |
shell: bash | |
# Step 9: Deploy Documentation to GitHub Pages | |
- name: Deploy to GitHub Pages | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: docs/_build/html |