name: "Tests"
on:
push:
branches: [ main ]
pull_request:
# Allow the job to be triggered manually.
workflow_dispatch:
# Run the job as a nightly recurrent job.
schedule:
- cron: '0 4 * * *'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: "
Python ${{ matrix.python-version }}
"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest']
python-version: [
'3.10',
'3.14'
]
cratedb-version: [
'nightly',
]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
UV_SYSTEM_PYTHON: true
services:
cratedb:
image: crate/crate:${{ matrix.cratedb-version }}
ports:
- 4200:4200
- 5432:5432
env:
CRATE_HEAP_SIZE: 4g
steps:
- name: Acquire sources
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
cache-dependency-glob: |
pyproject.toml
cache-suffix: ${{ matrix.python-version }}
enable-cache: true
version: "latest"
- name: Set up mcptools
run: |
go install github.com/f/mcptools/cmd/mcptools@latest
- name: Set up project
run: |
uv pip install --editable='.[all,develop,test]'
- name: Run linter and software tests
run: poe check
# https://github.com/codecov/codecov-action
- name: Upload coverage results to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
env_vars: OS,PYTHON
fail_ci_if_error: true