Hey! These docs are for version 1, which is no longer officially supported. Click here for the latest version, 2-web!


Percy is designed to integrate with your tests and CI environment. To enable Percy, the token environment variable must be configured in your CI service:

  • `PERCY_TOKEN`: The Percy repo write-only API token. This is unique for each Percy repository.

# Buildkite pipeline setup




Buildkite provides an easy way to set environment variables in your build pipeline config or agent hooks:

<https://buildkite.com/docs/guides/environment-variables>

In your Buildkite pipeline, go to Settings > Steps > Environment Variables.

Then set `PERCY_TOKEN` to the write-only token from your Percy repo. This token can be found in each Percy repo's settings.

1025




**IMPORTANT: Keep your Percy token secret.** Anyone with access to your token can consume your account quota, though they cannot read data.

## Setup for docker-compose

If you use Docker containers in your Buildkite builds, you need to pass some environment variables in to your containers for Percy's client library to detect the environment correctly.

Add this to your `docker-compose.yml`:



By leaving the value blank, Docker will pass through the value from the host Buildkite environment.

# Next step: integrate with tests




You're done with setup---the last step is to integrate Percy into your tests and run them. Just choose your client library:

JavaScript

  • [Ember](🔗)

  • [React](🔗)

  • [Storybook for React](🔗)

  • [Storybook for Angular](🔗)

  • [Storybook for Vue.js](🔗)

  • [Storybook for Ember](🔗)

  • [Cypress](🔗)

  • [WebdriverIO](🔗)<sup>beta</sup>

  • [Puppeteer](🔗)<sup>beta</sup>

  • [Nightmare.js](🔗)<sup>beta</sup>

  • [Protractor](🔗)<sup>beta</sup>

Ruby

  • [Rails](🔗)

  • [Other](🔗)

  • [Capybara, no tests](🔗)

  • [Best practices](🔗)

Python

  • [Selenium](🔗)

Static sites

  • [Command-line client](🔗)

Everything else

  • [Percy Anywhere](🔗)