Skip to content

Version Packages

Version Packages #182

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
# Nightly run on main so we notice breakage from upstream changes (Redis, model
# providers, unpinned deps) even on days without commits.
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: lint · typecheck · test · build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
# pnpm 11 (pinned via packageManager) requires Node >=22.13; use 24 LTS.
node-version: 24
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint (eslint + prettier)
run: pnpm lint
- name: Typecheck
run: pnpm typecheck
# Read-only: the telemetry VERSION constants are written by `pnpm ci:version` at release time,
# so this only fails if a version was bumped without it.
- name: Check version constants
run: node scripts/sync-version.mjs --check
- name: Build packages
run: pnpm build
- name: Test
# Tests run against a real Upstash Redis. Add UPSTASH_REDIS_REST_URL /
# UPSTASH_REDIS_REST_TOKEN as repo secrets to enable them; without secrets the
# Redis-backed suites skip themselves and CI stays green.
run: pnpm test
env:
UPSTASH_REDIS_REST_URL: ${{ secrets.UPSTASH_REDIS_REST_URL }}
UPSTASH_REDIS_REST_TOKEN: ${{ secrets.UPSTASH_REDIS_REST_TOKEN }}
- name: Build example apps
run: pnpm -r --filter "./examples/*" build
- name: E2E eval (eve memory slots, mocked model)
# Boots the eve demo's agent with a scripted mockModel (no model provider, no
# OPENAI_API_KEY) and asserts both Upstash Redis memory integrations run at eve's real
# memory lifecycle boundaries against real Redis: redisMemory() captures a turn and recalls
# it, and fileMemory({ backend: redisDocuments() }) saves and recalls its document.
working-directory: examples/eve-demo
env:
UPSTASH_REDIS_REST_URL: ${{ secrets.UPSTASH_REDIS_REST_URL }}
UPSTASH_REDIS_REST_TOKEN: ${{ secrets.UPSTASH_REDIS_REST_TOKEN }}
AGENTKIT_MOCK_MODEL: "1"
run: |
if [ -z "$UPSTASH_REDIS_REST_URL" ]; then
echo "No Redis secrets available — skipping the e2e eval."
exit 0
fi
npx eve eval
- name: E2E eval (eve extension, mocked model)
# Boots the extension demo's agent with a scripted mockModel (no model provider,
# no OPENAI_API_KEY) and asserts the extension's tools execute against real Redis
# end to end. Reuses the same Redis secrets as the tests; skipped when they are
# absent (e.g. fork PRs, which don't receive secrets).
working-directory: examples/eve-extension-demo
env:
UPSTASH_REDIS_REST_URL: ${{ secrets.UPSTASH_REDIS_REST_URL }}
UPSTASH_REDIS_REST_TOKEN: ${{ secrets.UPSTASH_REDIS_REST_TOKEN }}
AGENTKIT_MOCK_MODEL: "1"
run: |
if [ -z "$UPSTASH_REDIS_REST_URL" ]; then
echo "No Redis secrets available — skipping the e2e eval."
exit 0
fi
npx eve eval