Skip to content

Reuse chat programs and rollout MCP clients #8680

Reuse chat programs and rollout MCP clients

Reuse chat programs and rollout MCP clients #8680

Workflow file for this run

name: Test
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
on:
pull_request:
branches: [main]
paths:
- "**.py"
- "pyproject.toml"
- "packages/**"
- ".github/workflows/test.yml"
push:
branches: [main]
paths:
- "**.py"
- "pyproject.toml"
- "packages/**"
- ".github/workflows/test.yml"
env:
HF_HOME: ${{ github.workspace }}/.cache/huggingface
permissions:
contents: read
jobs:
test:
name: Verifiers
runs-on: ubuntu-latest
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v10.0.1
- name: Cache Hugging Face tokenizers
uses: actions/cache@v6
with:
path: ${{ env.HF_HOME }}
key: hf-tokenizers-${{ runner.os }}-${{ hashFiles('uv.lock') }}
restore-keys: |
hf-tokenizers-${{ runner.os }}-
- name: Install dependencies
run: uv sync
- name: Run deterministic v1 tests
run: |
uv run pytest tests/v1 -vv -n auto -m "not e2e" --cov=verifiers --cov-report=xml --cov-report=term
v1-e2e:
name: V1 live E2E (Python 3.12)
if: >-
github.event_name != 'pull_request' ||
(github.event.pull_request.head.repo.full_name == github.repository &&
github.event.pull_request.user.login != 'dependabot[bot]')
runs-on: ubuntu-latest
timeout-minutes: 120
env:
PRIME_API_KEY: ${{ secrets.PRIME_API_KEY }}
PRIME_TEAM_ID: ${{ secrets.PRIME_TEAM_ID }}
HF_TOKEN: ${{ secrets.HF_TOKEN }}
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Python 3.12
uses: actions/setup-python@v7
with:
python-version: "3.12"
- name: Install uv
uses: astral-sh/setup-uv@v10.0.1
- name: Cache Hugging Face tokenizers
uses: actions/cache@v6
with:
path: ${{ env.HF_HOME }}
key: hf-tokenizers-${{ runner.os }}-${{ hashFiles('uv.lock') }}
restore-keys: |
hf-tokenizers-${{ runner.os }}-
- name: Install dependencies
run: uv sync
- name: Run live v1 E2Es
run: |
uv run pytest tests/v1 -vv -n auto -m "e2e and not prime and not modal" --cov=verifiers --cov-report=xml --cov-report=term