CircleCI โ
Run your Shiplight E2E tests in CircleCI and upload the results to Shiplight Cloud. CircleCI uses the same shiplight CLI as every other provider โ only the pipeline syntax differs.
Before you start โ
- A scaffolded Shiplight test project (
/shiplight init). See the CI/CD overview for how the pieces fit together. - An org API token from app.shiplight.ai/api-tokens, stored as a project environment variable named
SHIPLIGHT_API_TOKEN. - One-time: connect the repository in CircleCI. For a GitHub repository, install and authorize the CircleCI GitHub App for that repository.
Pipeline โ
Create .circleci/config.yml at your repository root:
yaml
version: 2.1
jobs:
e2e:
docker:
- image: cimg/node:22.14-browsers # -browsers variant ships the system libs Chromium needs
environment:
SHIPLIGHT_REPORT_TO_CLOUD: "1"
# SHIPLIGHT_API_TOKEN comes from a project env var / context.
steps:
- checkout
- run: npm install
- run: npx playwright install chromium
- run: npx shiplight test
- run:
name: Upload results to Shiplight
command: npx shiplight report
when: always # upload even when tests fail
workflows:
e2e:
jobs:
- e2eConnect and run the pipeline โ
After committing .circleci/config.yml:
- Create or select the project in CircleCI and connect your repository. For GitHub, use the CircleCI GitHub App integration.
- Open Project Settings โ Project Setup and add a pipeline with:
- Config source: your repository
- Config filepath:
.circleci/config.yml - Checkout source: your repository
- Save the pipeline.
- Open Project Settings โ Environment Variables and add
SHIPLIGHT_API_TOKENwith your Shiplight org API token as its value. - Push a commit or trigger the pipeline from CircleCI.
Notes โ
SHIPLIGHT_API_TOKENandSHIPLIGHT_REPORT_TO_CLOUD=1are required on every non-Shiplight runner โ they are provided automatically only on Shiplight-hosted GitHub runners.- With
SHIPLIGHT_API_TOKENset, AI-powered actions run through the Shiplight LLM proxy, and healed locators persist to the Shiplight Cloud action cache so later runs can reuse them. - The
cimg/node:*-browsersimage bundles the system libraries Chromium needs, so a plainnpx playwright install chromiumis enough. On a non-browser image, use--with-deps. when: alwayson the report step is what makes the upload survive a red run.- Not available on CircleCI: Shiplight-hosted runners, automatically provisioned credentials, and auto-triage โ those are GitHub Actions only.
- Project in a subdirectory (e.g.
tests/e2e)? Addworking_directory: ~/project/tests/e2eto the job, orcdinto it before each command.