61 lines
1.7 KiB
YAML
61 lines
1.7 KiB
YAML
name: CI All Files
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test-changed:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.12", "3.13"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Need full history to detect changes
|
|
|
|
- name: Free disk space
|
|
run: |
|
|
# Remove large, preinstalled toolchains we don't need on the runner
|
|
sudo rm -rf /usr/share/dotnet
|
|
sudo rm -rf /opt/ghc
|
|
sudo rm -rf /usr/local/lib/android
|
|
sudo rm -rf /opt/hostedtoolcache/CodeQL
|
|
# Prune docker to reclaim space (safe on GH runners)
|
|
docker system prune -af || true
|
|
df -h
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Prepare environment with uv
|
|
run: |
|
|
python -m pip install --upgrade pip uv
|
|
uv venv --python "${{ matrix.python-version }}" --seed
|
|
echo "VIRTUAL_ENV=${PWD}/.venv" >> "$GITHUB_ENV"
|
|
echo "PATH=${PWD}/.venv/bin:$PATH" >> "$GITHUB_ENV"
|
|
source .venv/bin/activate
|
|
uv pip install -e ".[dev]"
|
|
|
|
- name: Run tests
|
|
run: |
|
|
if [ ! -d tests ]; then
|
|
echo "tests/ directory not found. Skipping pytest run."
|
|
|
|
|
|
exit 0
|
|
fi
|
|
TEST_FILES=$(find tests -type f \( -name "test_*.py" -o -name "*_test.py" \))
|
|
if [ -z "$TEST_FILES" ]; then
|
|
echo "No pytest-compatible test files detected under tests/. Skipping pytest run."
|
|
exit 0
|
|
fi
|
|
pytest tests/ -v -m "not slow"
|