Files
wehub-resource-sync 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
chore: import upstream snapshot with attribution
2026-07-13 13:24:08 +08:00

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:

  1. Navigate to your repository in Travis CI
  2. Go to More options > Settings > Environment Variables
  3. Add variables for each provider API key (e.g., OPENAI_API_KEY, ANTHROPIC_API_KEY)
  4. 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