Skip to content

Test suite v0.4

Test suite v0.4 #125

Workflow file for this run

# :: Use nektos/act to run this locally
# :: Example:
# :: `act push -j python-tests --matrix python-version:3.10 --container-architecture linux/amd64`
#
# This workflow runs two separate test suites:
# 1. Unit Tests (python-tests job):
# - Runs across Python 3.9 to 3.13
# - Located in tests/unit directory
# - Coverage report uploaded to Codecov for Python 3.11 only
#
# 2. Integration Tests (integration-tests job):
# - Runs only on Python 3.13
# - Located in tests/integration directory
# - Longer timeout (15 min vs 10 min for unit tests)
# - Separate cache for dependencies
x-common-env: &common-env

Check failure on line 17 in .github/workflows/python-tests.yaml

View workflow run for this annotation

GitHub Actions / Python Tests

Invalid workflow file

The workflow is not valid. .github/workflows/python-tests.yaml (Line: 17, Col: 1): Unexpected value 'x-common-env' .github/workflows/python-tests.yaml: Anchors are not currently supported. Remove the anchor 'common-env'
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
AGENTOPS_API_KEY: ${{ secrets.AGENTOPS_API_KEY }}
PYTHONUNBUFFERED: "1"
name: Python Tests
on:
workflow_dispatch: {}
push:
branches:
- main
paths:
- 'agentops/**/*.py'
- 'agentops/**/*.ipynb'
- 'tests/**/*.py'
- 'tests/**/*.ipynb'
pull_request:
branches:
- main
paths:
- 'pyproject.toml'
- 'agentops/**/*.py'
- 'agentops/**/*.ipynb'
- 'tests/**/*.py'
- 'tests/**/*.ipynb'
jobs:
unit-tests:
runs-on: ubuntu-latest
env: *common-env
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Setup UV
uses: astral-sh/setup-uv@v5
continue-on-error: true
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
cache-suffix: uv-${{ matrix.python-version }}
cache-dependency-glob: "**/pyproject.toml"
- name: Install dependencies
run: |
uv sync --group test --group dev
- name: Run unit tests with coverage
timeout-minutes: 5
run: |
uv run -m pytest tests/unit -v --cov=agentops --cov-report=xml
env: *common-env
# Only upload coverage report for python3.11
- name: Upload coverage to Codecov
if: ${{matrix.python-version == '3.11'}}
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: true # Should we?
integration-tests:
runs-on: ubuntu-latest
env: *common-env
steps:
- uses: actions/checkout@v4
- name: Setup UV
uses: astral-sh/setup-uv@v5
continue-on-error: true
with:
python-version: "3.13"
enable-cache: true
cache-suffix: uv-3.13-integration
cache-dependency-glob: "**/pyproject.toml"
- name: Install dependencies
run: |
uv sync --group test --group dev
- name: Run integration tests
timeout-minutes: 5
run: |
uv run pytest tests/integration
env: *common-env