Skip to content

Bump actions/cache from 3 to 6 #257

Bump actions/cache from 3 to 6

Bump actions/cache from 3 to 6 #257

Workflow file for this run

name: Python Tests
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
unit:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest] # For demonstration, other OSes are commented out: macos-latest, windows-latest
python-version: ['3.13', '3.12', '3.11', '3.10']
steps:
- uses: actions/checkout@v4
with: # no need for the history
fetch-depth: 1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
run: |
python -m pip install --upgrade pip
python -m pip install poetry==2.3.2
- name: Install dependencies with Poetry
run: |
poetry lock
poetry install --with dev
shell: bash
- name: Run unit tests
id: run-tests
run: >
poetry run pytest \
-m "not requires_openrouter" \
--junitxml=pytest.xml \
--cov-report=term-missing:skip-covered \
--cov-report=xml:coverage.xml \
--cov=src src/tests \
--log-level=DEBUG \
--verbose
shell: bash
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
check-secrets:
runs-on: ubuntu-latest
outputs:
has-openrouter-key: ${{ steps.check.outputs.has-key }}
steps:
- id: check
env:
KEY: ${{ secrets.OPENROUTER_API_KEY }}
run: |
if [ -n "$KEY" ]; then
echo "has-key=true" >> $GITHUB_OUTPUT
echo "OPENROUTER_API_KEY is set — integration tests will run."
else
echo "has-key=false" >> $GITHUB_OUTPUT
echo "OPENROUTER_API_KEY is not set — skipping integration tests."
fi
shell: bash
integration:
needs: check-secrets
if: needs.check-secrets.outputs.has-openrouter-key == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install poetry
run: |
python -m pip install --upgrade pip
python -m pip install poetry==2.3.2
- name: Install dependencies with Poetry
run: |
poetry lock
poetry install --with dev
shell: bash
- name: Run OpenRouter integration tests
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
run: >
poetry run pytest \
-m "requires_openrouter" \
--junitxml=pytest.xml \
--cov-report=term-missing:skip-covered \
--cov-report=xml:coverage.xml \
--cov=src src/tests \
--log-level=DEBUG \
--verbose
shell: bash
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
pre-commit:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- uses: actions/checkout@v4
with: # no need for the history
fetch-depth: 1
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
run: pip install poetry==2.1.3
shell: bash
- name: Install dependencies with Poetry
run: |
poetry env use ${{ matrix.python-version }}
poetry lock
poetry install --with dev
poetry env info
shell: bash
- name: Install pre-commit
run: pip install pre-commit
shell: bash
- name: Run pre-commit
run: |
poetry run pre-commit run --all-files --show-diff-on-failure
shell: bash