Skip to content

Periodic Evaluations #700

Periodic Evaluations

Periodic Evaluations #700

name: Periodic Evaluations
on:
schedule:
- cron: "0 */4 * * *" # Run every 4 hours
workflow_dispatch: # Allow manual triggering
jobs:
setup:
runs-on: ubuntu-latest
outputs:
models: ${{ steps.set-models.outputs.models }}
has_models: ${{ steps.set-models.outputs.has_models }}
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Install Bun
run: npm install -g bun@1.3.8
- name: Install dependencies
run: bun install
- id: set-models
env:
CONVEX_EVAL_URL: ${{ secrets.CONVEX_EVAL_URL }}
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
run: |
bun run scripts/listPeriodicModels.ts --format json --output-file /tmp/periodic-models.json
models=$(< /tmp/periodic-models.json)
echo "models=$models" >> $GITHUB_OUTPUT
if [ "$models" = "[]" ]; then
echo "has_models=false" >> $GITHUB_OUTPUT
else
echo "has_models=true" >> $GITHUB_OUTPUT
fi
run-evals:
needs: setup
if: needs.setup.outputs.has_models == 'true'
runs-on: ubuntu-latest
timeout-minutes: 120
strategy:
fail-fast: false
max-parallel: 4
matrix:
model: ${{ fromJson(needs.setup.outputs.models) }}
env:
ENVIRONMENT: ci
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Install Bun
run: npm install -g bun@1.3.8
- name: Install dependencies
run: bun install
- name: Create temp directory
run: mkdir -p /tmp/convex-evals
- name: Set main-branch-only environment variables
if: github.ref == 'refs/heads/main'
run: |
echo "CONVEX_EVAL_URL=${{ secrets.CONVEX_EVAL_URL }}" >> $GITHUB_ENV
echo "CONVEX_AUTH_TOKEN=${{ secrets.CONVEX_AUTH_TOKEN }}" >> $GITHUB_ENV
- name: Set model
run: |
echo "MODELS=${{ matrix.model }}" >> $GITHUB_ENV
- name: Run evaluations
env:
OUTPUT_TEMPDIR: /tmp/convex-evals
run: bun run runner/index.ts
- name: Run evaluations (no_guidelines experiment)
env:
OUTPUT_TEMPDIR: /tmp/convex-evals-no-guidelines
EVALS_EXPERIMENT: no_guidelines
run: bun run runner/index.ts