Files
turso/.github/workflows/python.yml
2024-09-01 16:10:59 +03:00

108 lines
2.5 KiB
YAML

name: Python
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
working-directory: bindings/python
PIP_DISABLE_PIP_VERSION_CHECK: "true"
jobs:
test:
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: ${{ env.working-directory }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@stable
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install -r requirements.txt -r requirements-dev.txt
- name: Install Limbo
run: pip install -e .
- name: Run Pytest
run: pytest tests
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ env.working-directory }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dev dependencies
run: pip install -r requirements-dev.txt
- name: Run Ruff check
run: ruff check
- name: Run Ruff format check
run: ruff format --diff
check-requirements:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ env.working-directory }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install pip-tools
run: pip install pip-tools
- name: Check requirements files
run: |
mkdir .tmp
pip-compile --quiet --output-file .tmp/requirements.txt
pip-compile --quiet --extra=dev --output-file .tmp/requirements-dev.txt
diff -u requirements.txt .tmp/requirements.txt || (echo "requirements.txt doesn't match pyproject.toml" && exit 1)
diff -u requirements-dev.txt .tmp/requirements-dev.txt || (echo "requirements-dev.txt doesn't match pyproject.toml" && exit 1)
echo "Requirements files match pyproject.toml"