Execute commands from your Continuous Integration (CI) and Continuous Delivery (CD) pipelines to integrate with existing Datadog products.
See the Usage section for a list of available commands.
The package is under @datadog/datadog-ci and can be installed through NPM or Yarn:
# NPM
npm install --save-dev @datadog/datadog-ci
# Yarn
yarn add --dev @datadog/datadog-ci
If you need datadog-ci
as a CLI tool instead of a package, you can run it with npx
or install it globally:
# npx
npx @datadog/datadog-ci [scope]
# NPM install globally
npm install -g @datadog/datadog-ci
# Yarn v1 add globally
yarn global add @datadog/datadog-ci
For more ways to install the CLI, see this section.
Plugins are separate packages that were split from the @datadog/datadog-ci
package to reduce its installation size.
Use datadog-ci plugin list
to list the available plugins:
datadog-ci plugin list
Use datadog-ci plugin install
to install a plugin:
datadog-ci plugin install <scope>
By default, running a command that requires a plugin will automatically install the plugin if it is not already installed. You can disable this behavior with DISABLE_PLUGIN_AUTO_INSTALL=1
.
Usage: datadog-ci <scope> <command> [options]
The following <scope>
and <command>
values are available.
README: π | Documentation: π | Plugin: @datadog/datadog-ci-plugin-aas
instrument
: Apply Datadog instrumentation to the given Azure App Services.uninstrument
: Revert Datadog instrumentation from the given Azure App Services.
README: π | Documentation: π | Plugin: @datadog/datadog-ci-plugin-cloud-run
flare
: Troubleshoot your issues with Cloud Run service configuration.instrument
: Apply Datadog instrumentation to the given Cloud Run Services.uninstrument
: Revert Datadog instrumentation from the given Cloud Run Services.
README: π | Documentation: π
upload
: Upload code coverage report files to Datadog.
README: π | Documentation: π
deployment
: Send a new deployment event for DORA Metrics to Datadog.
README: π | Documentation: π
upload
: Upload iOS dSYM files for Error Tracking (macOS only).
README: π | Documentation: π
upload
: Upload Flutter symbols for Error Tracking.
README: π | Documentation: π
evaluate
: Evaluate Quality Gates rules in Datadog.
README: π | Documentation: π
upload
: Upload Git metadata for the Source Code Integration.
README: π | Documentation: π
upload
: Upload JUnit test reports for Test Visibility.
README: π | Documentation: π | Plugin: @datadog/datadog-ci-plugin-lambda
flare
: Troubleshoot your issues with Datadog instrumentation on your AWS Lambda functions.instrument
: Apply Datadog instrumentation to the given AWS Lambda functions.uninstrument
: Revert Datadog instrumentation from the given AWS Lambda functions.
README: π | Documentation: π
- Add measures to a CI Visibility pipeline trace or job span in Datadog.
README: π | Documentation: π
upload
: Upload Windows PE debug info files for Profiling.
README: π | Documentation: π
codepush
: Upload React Native CodePush sourcemaps for Error Tracking. πupload
: Upload React Native sourcemaps for Error Tracking.xcode
: Upload React Native sourcemaps for Error Tracking from the XCode bundle build phase.
README: π | Documentation: π
upload
: Upload Static Analysis Results Interchange Format (SARIF) reports to Datadog.
README: π | Documentation: π
upload
: Upload Software Bill of Materials (SBOM) files to Datadog.
README: π | Documentation: π
upload
: Upload JavaScript sourcemaps for Error Tracking.
README: π | Documentation: π | Plugin: @datadog/datadog-ci-plugin-stepfunctions
instrument
: Instrument AWS Step Function with Datadog to get logs and traces.uninstrument
: Uninstrument AWS Step Function.
README: π | Plugin: @datadog/datadog-ci-plugin-synthetics
run-tests
: Run Continuous Testing tests from the CI. πupload-application
: Upload a new version to an existing mobile application in Datadog. π
README: π | Documentation: π
- Add custom tags to a CI Visibility pipeline trace or job span in Datadog.
README: π | Documentation: π
- Add custom commands to a CI Visibility pipeline in Datadog.
README: π | Documentation: π
upload
: Upload Unity symbols for Error Tracking.
The following are beta commands, you can enable them with with DD_BETA_COMMANDS_ENABLED=1
:
README: π | Documentation: π
mark
: Mark a CI job as a deployment.correlate
: Correlate GitOps CD deployments with application repositories CI pipelines. πcorrelate-image
: Correlate an image from a CD provider with its source commit. πgate
: Evaluate a Deployment Gate. π
README: π | Documentation: π
upload
: Upload Elf debug info files for Profiling.
The fips
option allows datadog-ci
to use a FIPS cryptographic module provider if the OpenSSL library installed on the host system provides it.
Note: datadog-ci
cannot assert if such a provider is available, and doesn't throw any error if the provider is not FIPS validated.
Node.js versions below 17 are incompatible with OpenSSL 3, which provides FIPS support.
If you are using a Node.js version below 17, enabling the fips
option causes the command to throw an error.
The option fips-ignore-error
ignores this error.
The released datadog-ci
binary now uses Node.js version 18 to be compatible with OpenSSL 3.
Enable datadog-ci
FIPS support if a FIPS validated provider is installed on the host system.
If you do not have a FIPS provider installed, datadog-ci
does not raise an error.
ENV variable: DATADOG_FIPS=true
CLI param: --fips
Ignore Node.js errors if FIPS cannot be enabled on the host system.
Note: the absence of an error doesn't indicate that FIPS is enabled successfully.
ENV variable: DATADOG_FIPS_IGNORE_ERROR=true
CLI param: --fips-ignore-error
If installing NodeJS in the CI is an issue, standalone binaries are provided with releases. linux-x64, linux-arm64, darwin-x64, darwin-arm64 (MacOS) and win-x64 (Windows) are supported.
To install:
curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" && chmod +x /usr/local/bin/datadog-ci
curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_darwin-x64" --output "/usr/local/bin/datadog-ci" && chmod +x /usr/local/bin/datadog-ci
Invoke-WebRequest -Uri "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_win-x64" -OutFile "datadog-ci.exe"
Then, you can run datadog-ci
commands normally:
datadog-ci version
To run datadog-ci
from a container, you can use the datadog/ci
image available in Docker Hub as well as the public Amazon ECR and Google GC registries.
docker pull datadog/ci
This example demonstrates how to run a command using the container and passing in the API and app keys:
export DD_API_KEY=$(cat /secret/dd_api_key)
export DD_APP_KEY=$(cat /secret/dd_app_key)
docker run --rm -it -v $(pwd):/w -e DD_API_KEY -e DD_APP_KEY datadog/ci <command> [<subcommand>] [options]
You can build an image using the provided Dockerfile:
cd container
docker build --tag datadog-ci .
Optionally, you can use the VERSION
build argument to build an image for a specific version:
docker build --build-arg "VERSION=v3.9.0" --tag datadog-ci .
If you are upgrading from a previous major version, read our MIGRATING.md document to understand the changes and how to adapt your scripts.
Before contributing to this open source project, read our CONTRIBUTING.md document.