0d3cb498a3
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Has been cancelled
Test and Publish Multi-arch Docker Image / test (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Has been cancelled
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Has been cancelled
Validate Renovate Config / Validate Renovate Configuration (push) Has been cancelled
3.4 KiB
3.4 KiB
sidebar_label, description
| sidebar_label | description |
|---|---|
| Travis CI | Set up automated LLM testing in Travis CI pipelines with promptfoo. Configure environment variables, artifacts storage, and continuous evaluation of AI prompts and outputs. |
Travis CI Integration
This guide demonstrates how to set up promptfoo with Travis CI to run evaluations as part of your CI pipeline.
Prerequisites
- A GitHub repository with a promptfoo project
- A Travis CI account connected to your repository
- API keys for your LLM providers stored as Travis CI environment variables
Setting up Travis CI
Create a new file named .travis.yml in the root of your repository with the following configuration:
language: node_js
node_js:
- 18
cache:
directories:
- node_modules
before_install:
- npm install -g promptfoo
install:
- npm ci
script:
- npx promptfoo eval
after_success:
- echo "Prompt evaluation completed successfully"
after_failure:
- echo "Prompt evaluation failed"
# Save evaluation results as artifacts
before_deploy:
- mkdir -p artifacts
- cp promptfoo-results.json artifacts/
deploy:
provider: s3
bucket: 'your-bucket-name' # Replace with your bucket name
skip_cleanup: true
local_dir: artifacts
on:
branch: main
Environment Variables
Store your LLM provider API keys as environment variables in Travis CI:
- Navigate to your repository in Travis CI
- Go to More options > Settings > Environment Variables
- Add variables for each provider API key (e.g.,
OPENAI_API_KEY,ANTHROPIC_API_KEY) - Make sure to mark them as secure to prevent them from being displayed in logs
Advanced Configuration
Fail the Build on Failed Assertions
You can configure the pipeline to fail when promptfoo assertions don't pass:
script:
- npx promptfoo eval --fail-on-error
Testing on Multiple Node.js Versions
Test your evaluations across different Node.js versions:
language: node_js
node_js:
- 18
- 20
script:
- npx promptfoo eval
Running on Different Platforms
Run evaluations on multiple operating systems:
language: node_js
node_js:
- 18
os:
- linux
- osx
script:
- npx promptfoo eval
Conditional Builds
Run evaluations only on specific branches or conditions:
language: node_js
node_js:
- 18
# Run evaluations only on main branch and pull requests
if: branch = main OR type = pull_request
script:
- npx promptfoo eval
Custom Build Stages
Set up different stages for your build process:
language: node_js
node_js:
- 18
stages:
- test
- evaluate
jobs:
include:
- stage: test
script: npm test
- stage: evaluate
script: npx promptfoo eval
env:
- MODEL=gpt-4
- stage: evaluate
script: npx promptfoo eval
env:
- MODEL=claude-3-opus-20240229
Troubleshooting
If you encounter issues with your Travis CI integration:
- Check logs: Review detailed logs in Travis CI to identify errors
- Verify environment variables: Ensure your API keys are correctly set
- Build timeouts: Travis CI has a default timeout of 50 minutes for jobs. For long-running evaluations, you may need to configure job timeouts
- Resource constraints: Consider breaking down large evaluations into smaller chunks if you're hitting resource limits