site/docs/integrations/travis-ci.md
This guide demonstrates how to set up promptfoo with Travis CI to run evaluations as part of your CI pipeline.
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
Store your LLM provider API keys as environment variables in Travis CI:
OPENAI_API_KEY, ANTHROPIC_API_KEY)You can configure the pipeline to fail when promptfoo assertions don't pass:
script:
- npx promptfoo eval --fail-on-error
Test your evaluations across different Node.js versions:
language: node_js
node_js:
- 18
- 20
script:
- npx promptfoo eval
Run evaluations on multiple operating systems:
language: node_js
node_js:
- 18
os:
- linux
- osx
script:
- npx promptfoo eval
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
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
If you encounter issues with your Travis CI integration: