Run Synthetic tests in your CircleCI pipelines using the Datadog CircleCI orb.
The CircleCI command orb installs datadog-ci and uses the datadog-ci synthetics run-tests
command to execute Datadog Synthetic tests.
To get started:
- Add your Datadog API and application keys as environment variables to your CircleCI project. See inputs for naming conventions. For more information, see API and Application Keys.
- Ensure the image running the orb is a Linux x64 base image with cURL installed.
Your workflow can be simple or complex.
version: 2.1
orbs:
synthetics-ci: datadog/[email protected]
jobs:
e2e-tests:
docker:
- image: cimg/base:stable
steps:
- synthetics-ci/run-tests:
public_ids: 'abc-d3f-ghi, jkl-mn0-pqr'
workflows:
run-tests:
jobs:
- e2e-tests
version: 2.1
orbs:
synthetics-ci: datadog/[email protected]
jobs:
e2e-tests:
docker:
- image: cimg/base:stable
steps:
- synthetics-ci/run-tests:
files: e2e-tests/*.synthetics.json
workflows:
run-tests:
jobs:
- e2e-tests
version: 2.1
orbs:
synthetics-ci: datadog/[email protected]
jobs:
e2e-tests:
docker:
- image: cimg/base:stable
steps:
- synthetics-ci/run-tests:
test_search_query: 'tag:e2e-tests'
workflows:
run-tests:
jobs:
- e2e-tests
Example orb usage using the Synthetic Testing Tunnel
version: 2.1
orbs:
synthetics-ci: datadog/[email protected]
jobs:
e2e-tests:
docker:
- image: your-image
steps:
- checkout
- run:
name: Running server in background
command: npm start
background: true
- synthetics-ci/run-tests:
config_path: tests/tunnel-config.json
files: tests/*.synthetics.json
test_search_query: 'tag:e2e-tests'
tunnel: true
workflows:
test-server:
jobs:
- build-image
- integration-tests:
requires:
- build-image
For additional options such as customizing the pollingTimeout
for your CircleCI pipelines, see CI/CD Integrations Configuration.
Name | Type | Default | Description |
---|---|---|---|
api_key |
env var name | DATADOG_API_KEY |
The name of the environment variable containing the API key. |
api_key |
env var name | DATADOG_APP_KEY |
The name of the environment variable containing the app key. |
config_path |
string | datadog-ci.json |
The global JSON configuration used when launching tests. |
fail_on_critical_errors |
boolean | false |
Fail if tests were not triggered or results could not be fetched. |
fail_on_timeout |
boolean | true |
Force the CI to fail (or pass) if one of the results exceeds its test timeout. |
files |
string | {,!(node_modules)/**/}*.synthetics.json |
Glob pattern to detect Synthetic tests config files. |
locations |
string | values in test config files | String of locations separated by semicolons to override the locations where your tests run. |
public_ids |
string | values in test config files | String of public IDs separated by commas for Synthetic tests you want to trigger. |
site |
string | datadoghq.com |
The Datadog site to send data to. If the DD_SITE environment variable is set, it takes preference. |
subdomain |
string | app |
The name of the custom subdomain set to access your Datadog application. |
test_search_query |
string | none | Trigger tests corresponding to a search query. |
tunnel |
boolean | false |
Use the testing tunnel to trigger tests. |
variables |
string | none | Key-value pairs for injecting variables into tests. Must be formatted using KEY=VALUE . |
version |
string | v1.16.0 |
The version of datadog-ci to use. |
Additional helpful documentation, links, and articles: