Skip to content

Custom setups โ€‹

No dedicated page for your CI provider? It doesn't matter. The shiplight CLI runs on any pipeline that has Node โ€” Drone, Woodpecker, TeamCity, Bitbucket Pipelines, a bare shell script, or anything else. The provider-specific pages are just this same recipe in each provider's syntax.

The recipe โ€‹

Any provider needs four things, in order:

bash
npm install                              # installs the shiplight CLI (shiplightai) + project deps
npx playwright install --with-deps chromium   # the browser the tests drive (drop --with-deps if the image has the libs)
npx shiplight test                       # run the tests
npx shiplight report                     # upload results โ€” must run even when tests fail

And two environment variables:

VariableValueWhy
SHIPLIGHT_API_TOKENorg token from app.shiplight.ai/api-tokensauthenticates the upload (report), and LLM-proxy calls for AI-powered test steps; store it as a secret
SHIPLIGHT_REPORT_TO_CLOUD1enables the cloud upload

Making report always run โ€‹

The upload has to happen even when tests fail, or a red run produces no cloud report. Use whatever "run regardless" mechanism your provider offers โ€” a post/after hook, when: always, or capture-and-re-exit in a shell script:

bash
set +e
npx shiplight test; STATUS=$?
npx shiplight report
exit $STATUS

What you don't get off GitHub Actions โ€‹

Shiplight-hosted runners, the self-healing action cache, automatic LLM credentials, and the failure auto-triage pipeline are all GitHub Actions only. On a custom provider you supply the token, install Chromium, and โ€” if your tests use AI-powered actions โ€” provide your own LLM credentials as environment variables.

Notes โ€‹

  • Project in a subdirectory (e.g. tests/e2e)? cd into it before each command.
  • Tests that use AI-powered actions (natural-language steps, self-healing locators) need LLM credentials in the job env; only Shiplight runners provide these automatically.

Released under the MIT License.