{"id":19054308,"url":"https://github.com/datadog/datadog-ci","last_synced_at":"2026-03-03T22:07:06.978Z","repository":{"id":37410044,"uuid":"193929371","full_name":"DataDog/datadog-ci","owner":"DataDog","description":"Use Datadog from your CI.","archived":false,"fork":false,"pushed_at":"2025-05-12T17:11:22.000Z","size":19512,"stargazers_count":137,"open_issues_count":81,"forks_count":59,"subscribers_count":561,"default_branch":"master","last_synced_at":"2025-05-12T18:22:51.681Z","etag":null,"topics":["ci","continuous-integration"],"latest_commit_sha":null,"homepage":"https://datadoghq.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataDog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-06-26T15:15:17.000Z","updated_at":"2025-05-12T12:03:29.000Z","dependencies_parsed_at":"2023-12-20T13:51:28.184Z","dependency_job_id":"6deca0b9-bb22-4180-8f7d-1cb477f12797","html_url":"https://github.com/DataDog/datadog-ci","commit_stats":{"total_commits":1943,"total_committers":82,"mean_commits":"23.695121951219512","dds":0.883170355120947,"last_synced_commit":"4cc0e7e306c5cad67c67ecebf9394b2ccd9fa91a"},"previous_names":[],"tags_count":253,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdatadog-ci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdatadog-ci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdatadog-ci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdatadog-ci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataDog","download_url":"https://codeload.github.com/DataDog/datadog-ci/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478186,"owners_count":22077675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","continuous-integration"],"created_at":"2024-11-08T23:37:48.783Z","updated_at":"2026-03-03T22:07:06.969Z","avatar_url":"https://github.com/DataDog.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Datadog CI\n\n[![NPM Version](https://img.shields.io/npm/v/@datadog/datadog-ci)](https://www.npmjs.com/package/@datadog/datadog-ci) [![Continuous Integration](https://github.com/DataDog/datadog-ci/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/DataDog/datadog-ci/actions/workflows/ci.yml?query=branch%3Amaster) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) ![Node.js Version](https://img.shields.io/badge/Node.js-20+-green)\n\nExecute commands from your Continuous Integration (CI) and Continuous Delivery (CD) pipelines to integrate with existing Datadog products.\n\nSee the [Usage section](#usage) for a list of available commands.\n\n## How to install the CLI\n\nThe package is under [@datadog/datadog-ci](https://www.npmjs.com/package/@datadog/datadog-ci) and can be installed through NPM or Yarn:\n\n```sh\n# NPM\nnpm install --save-dev @datadog/datadog-ci\n\n# Yarn\nyarn add --dev @datadog/datadog-ci\n```\n\nIf you need `datadog-ci` as a CLI tool instead of a package, you can run it with [`npx`](https://www.npmjs.com/package/npx) or install it globally:\n\n```sh\n# npx\nnpx @datadog/datadog-ci@v4 [scope]\n\n# NPM install globally\nnpm install -g @datadog/datadog-ci\n\n# Yarn v1 add globally\nyarn global add @datadog/datadog-ci\n```\n\nFor more ways to install the CLI, see [this section](#more-ways-to-install-the-cli).\n\n## Installing a plugin\n\nPlugins are separate packages that were split from the `@datadog/datadog-ci` package to reduce its installation size.\n\nUse `datadog-ci plugin list` to list the available plugins:\n\n```sh\ndatadog-ci plugin list\n```\n\nUse `datadog-ci plugin install` to install a plugin:\n\n```sh\ndatadog-ci plugin install \u003cscope\u003e\n```\n\nBy 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`.\n\n## Usage\n\n```bash\nUsage: datadog-ci \u003cscope\u003e \u003ccommand\u003e [options]\n```\n\nThe following `\u003cscope\u003e` and `\u003ccommand\u003e` values are available.\n\n#### `aas`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-aas) | **Documentation:** [🔗](https://docs.datadoghq.com/serverless/azure_app_services/) | **Plugin:** `@datadog/datadog-ci-plugin-aas`\u003c/sub\u003e\n\n- `instrument`: Apply Datadog instrumentation to the given Azure Web Apps (or slots).\n- `uninstrument`: Revert Datadog instrumentation from the given Azure Web Apps (or slots).\n\n#### `cloud-run`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-cloud-run) | **Documentation:** [🔗](https://docs.datadoghq.com/serverless/google_cloud_run/) | **Plugin:** `@datadog/datadog-ci-plugin-cloud-run`\u003c/sub\u003e\n\n- `flare`: Troubleshoot your issues with Cloud Run service configuration.\n- `instrument`: Apply Datadog instrumentation to the given Cloud Run Services.\n- `uninstrument`: Revert Datadog instrumentation from the given Cloud Run Services.\n\n#### `container-app`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-container-app) | **Documentation:** [🔗](https://docs.datadoghq.com/serverless/azure_container_apps/sidecar/) | **Plugin:** `@datadog/datadog-ci-plugin-container-app`\u003c/sub\u003e\n\n- `instrument`: Apply Datadog instrumentation to Azure Container Apps.\n- `uninstrument`: Revert Datadog instrumentation from Azure Container Apps.\n\n#### `coverage`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-coverage) | **Documentation:** [🔗](https://docs.datadoghq.com/code_coverage/)\u003c/sub\u003e\n\n- `upload`: Upload code coverage report files to Datadog.\n\n#### `dora`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-dora) | **Documentation:** [🔗](https://docs.datadoghq.com/dora_metrics/)\u003c/sub\u003e\n\n- `deployment`: Send a new deployment event for DORA Metrics to Datadog.\n\n#### `dsyms`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/dsyms) | **Documentation:** [🔗](https://docs.datadoghq.com/real_user_monitoring/error_tracking/ios/)\u003c/sub\u003e\n\n- `upload`: Upload iOS dSYM files for Error Tracking (macOS only).\n\n#### `flutter-symbols`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/flutter-symbols) | **Documentation:** [🔗](https://docs.datadoghq.com/real_user_monitoring/error_tracking/flutter/)\u003c/sub\u003e\n\n- `upload`: Upload Flutter symbols for Error Tracking.\n\n#### `gate`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-gate) | **Documentation:** [🔗](https://docs.datadoghq.com/quality_gates/)\u003c/sub\u003e\n\n\u003e [!WARNING]\n\u003e\n\u003e **Deprecated:** Datadog Quality Gates is being replaced by the new PR Gates in 2026. To start the migration, please fill out this form: https://forms.gle/qnhANsE1ABtHrjqz9\n\u003e\n\u003e Learn more about PR Gates: https://docs.datadoghq.com/pr_gates\n\n- `evaluate`: Evaluate Quality Gates rules in Datadog.\n\n#### `git-metadata`\n\n\u003csub\u003e**README:** [📚](/packages/base/src/commands/git-metadata) | **Documentation:** [🔗](https://docs.datadoghq.com/integrations/guide/source-code-integration/)\u003c/sub\u003e\n\n- `upload`: Upload Git metadata for the Source Code Integration.\n\n#### `junit`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/junit) | **Documentation:** [🔗](https://docs.datadoghq.com/tests/setup/junit_xml/)\u003c/sub\u003e\n\n- `upload`: Upload JUnit test reports for Test Visibility.\n\n#### `lambda`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-lambda) | **Documentation:** [🔗](https://docs.datadoghq.com/serverless/aws_lambda/) | **Plugin:** `@datadog/datadog-ci-plugin-lambda`\u003c/sub\u003e\n\n- `flare`: Troubleshoot your issues with Datadog instrumentation on your AWS Lambda functions.\n- `instrument`: Apply Datadog instrumentation to the given AWS Lambda functions.\n- `uninstrument`: Revert Datadog instrumentation from the given AWS Lambda functions.\n\n#### `measure`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/measure) | **Documentation:** [🔗](https://docs.datadoghq.com/continuous_integration/pipelines/custom_tags_and_measures/)\u003c/sub\u003e\n\n- Add measures to a CI Visibility pipeline trace or job span in Datadog.\n\n#### `pe-symbols`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/pe-symbols) | **Documentation:** [🔗](https://docs.datadoghq.com/profiler/enabling/ddprof/)\u003c/sub\u003e\n\n- `upload`: Upload Windows PE debug info files for Profiling.\n\n#### `react-native`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/react-native) | **Documentation:** [🔗](https://docs.datadoghq.com/real_user_monitoring/error_tracking/reactnative/)\u003c/sub\u003e\n\n- `codepush`: Upload React Native CodePush sourcemaps for Error Tracking. [🔗](https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/setup/codepush/)\n- `upload`: Upload React Native sourcemaps for Error Tracking. \n- `xcode`: Upload React Native sourcemaps for Error Tracking from the XCode bundle build phase.\n\n#### `sarif`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-sarif) | **Documentation:** [🔗](https://docs.datadoghq.com/code_analysis/static_analysis/)\u003c/sub\u003e\n\n- `upload`: Upload Static Analysis Results Interchange Format (SARIF) reports to Datadog.\n\n#### `sbom`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-sbom) | **Documentation:** [🔗](https://docs.datadoghq.com/code_analysis/software_composition_analysis/)\u003c/sub\u003e\n\n- `upload`: Upload Software Bill of Materials (SBOM) files to Datadog. \n\n#### `sourcemaps`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/sourcemaps) | **Documentation:** [🔗](https://docs.datadoghq.com/real_user_monitoring/guide/upload-javascript-source-maps/)\u003c/sub\u003e\n\n- `upload`: Upload JavaScript sourcemaps for Error Tracking.\n\n#### `stepfunctions`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-stepfunctions) | **Documentation:** [🔗](https://docs.datadoghq.com/serverless/step_functions/installation/?tab=datadogcli) | **Plugin:** `@datadog/datadog-ci-plugin-stepfunctions`\u003c/sub\u003e\n\n- `instrument`: Instrument AWS Step Function with Datadog to get logs and traces.\n- `uninstrument`: Uninstrument AWS Step Function.\n\n#### `synthetics`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-synthetics) | **Plugin:** `@datadog/datadog-ci-plugin-synthetics`\u003c/sub\u003e\n\n- `run-tests`: Run Continuous Testing tests from the CI. [🔗](https://docs.datadoghq.com/continuous_testing/)\n- `upload-application`: Upload a new version to an existing mobile application in Datadog. [🔗](https://docs.datadoghq.com/mobile_app_testing/)\n\n#### `tag`\n\n\u003csub\u003e**README:** [📚](/packages/base/src/commands/tag) | **Documentation:** [🔗](https://docs.datadoghq.com/continuous_integration/pipelines/custom_tags_and_measures/)\u003c/sub\u003e\n\n- Add custom tags to a CI Visibility pipeline trace or job span in Datadog.\n\n#### `terraform`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-terraform) | **Plugin:** `@datadog/datadog-ci-plugin-terraform`\u003c/sub\u003e\n\n- `upload`: Upload Terraform plan or state files to Datadog for enhanced cloud-to-code mapping and policy evaluation.\n\n#### `trace`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/trace) | **Documentation:** [🔗](https://docs.datadoghq.com/continuous_integration/pipelines/custom_commands/)\u003c/sub\u003e\n\n- Add custom commands to a CI Visibility pipeline in Datadog.\n\n#### `unity-symbols`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/unity-symbols) | **Documentation:** [🔗](https://docs.datadoghq.com/real_user_monitoring/error_tracking/unity/)\u003c/sub\u003e\n\n- `upload`: Upload Unity symbols for Error Tracking.\n\n### Beta commands\n\nThe following are **beta** commands, you can enable them with with `DD_BETA_COMMANDS_ENABLED=1`:\n\n#### `deployment`\n\n\u003csub\u003e**README:** [📚](/packages/plugin-deployment) | **Documentation:** [🔗](https://docs.datadoghq.com/continuous_delivery/)\u003c/sub\u003e\n\n- `mark`: Mark a CI job as a deployment.\n- `correlate`: Correlate GitOps CD deployments with application repositories CI pipelines. [🔗](https://docs.datadoghq.com/continuous_delivery/deployments/argocd#correlate-deployments-with-ci-pipelines)\n- `correlate-image`: Correlate an image from a CD provider with its source commit. [🔗](https://docs.datadoghq.com/continuous_delivery/deployments/argocd#correlate-images-with-source-code)\n- `gate`: Evaluate a Deployment Gate. [🔗](https://docs.datadoghq.com/deployment_gates/)\n\n#### `elf-symbols`\n\n\u003csub\u003e**README:** [📚](/packages/datadog-ci/src/commands/elf-symbols) | **Documentation:** [🔗](https://docs.datadoghq.com/profiler/enabling/ddprof/)\u003c/sub\u003e\n\n- `upload`: Upload Elf debug info files for Profiling.\n\n### FIPS support\n\nThe `fips` option allows `datadog-ci` to use a FIPS cryptographic module provider if the OpenSSL library installed on the host system provides it.\n\n**Note**: `datadog-ci` cannot assert if such a provider is available, and doesn't throw any error if the provider is not FIPS validated.\n\nNode.js versions below 17 are incompatible with OpenSSL 3, which provides FIPS support.\nIf you are using a Node.js version below 17, enabling the `fips` option causes the command to throw an error.\nThe option `fips-ignore-error` ignores this error.\n\n#### `fips`\nEnable `datadog-ci` FIPS support if a FIPS validated provider is installed on the host system.\nIf you do not have a FIPS provider installed, `datadog-ci` does not raise an error.\n\n- ENV variable: `DATADOG_FIPS=true`\n- CLI param: `--fips`\n\n#### `fips-ignore-error`\nIgnore Node.js errors if FIPS cannot be enabled on the host system.\n\n**Note**: the absence of an error doesn't indicate that FIPS is enabled successfully.\n\n- ENV variable: `DATADOG_FIPS_IGNORE_ERROR=true`\n- CLI param: `--fips-ignore-error`\n\n\n## More ways to install the CLI\n\n### Standalone binary\n\nIf installing Node.js in the CI is an issue, standalone binaries are attached to each [GitHub release](https://github.com/DataDog/datadog-ci/releases).\n\nSupported architectures:\n- `linux-x64`\n- `linux-arm64`\n- `darwin-x64` (MacOS)\n- `darwin-arm64` (MacOS)\n- `win-x64` (Windows)\n\n\u003e [!WARNING]  \n\u003e Using `strip` to remove debugging symbols from the standalone binary as an attempt to make it smaller may cause segmentation faults when running `datadog-ci`. See https://github.com/nodejs/postject/issues/90.\n\n\u003e [!NOTE]  \n\u003e To determine the version when unable to run `datadog-ci --version` (for example, because of segmentation faults or an architecture mismatch), run `grep --text STANDALONE_BINARY_VERSION path/to/datadog-ci`.\n\nTo install the standalone binary:\n\n#### Linux\n\n```sh\n# Linux x64\ncurl -L --fail \"https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64\" --output \"/usr/local/bin/datadog-ci\" \u0026\u0026 chmod +x /usr/local/bin/datadog-ci\n\n# Linux arm64\ncurl -L --fail \"https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-arm64\" --output \"/usr/local/bin/datadog-ci\" \u0026\u0026 chmod +x /usr/local/bin/datadog-ci\n```\n\n#### MacOS\n\n```sh\n# MacOS x64\ncurl -L --fail \"https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_darwin-x64\" --output \"/usr/local/bin/datadog-ci\" \u0026\u0026 chmod +x /usr/local/bin/datadog-ci\n\n# MacOS arm64\ncurl -L --fail \"https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_darwin-arm64\" --output \"/usr/local/bin/datadog-ci\" \u0026\u0026 chmod +x /usr/local/bin/datadog-ci\n```\n\n#### Windows\n\n```sh\n# Windows x64\nInvoke-WebRequest -Uri \"https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_win-x64\" -OutFile \"datadog-ci.exe\"\n```\n\nThen, you can run `datadog-ci` commands normally:\n\n```sh\ndatadog-ci version\n```\n\n### Container image\n\nTo run `datadog-ci` from a container, you can use the `datadog/ci` image available in [Docker Hub](https://hub.docker.com/r/datadog/ci) as well as the public [Amazon ECR](https://gallery.ecr.aws/datadog/ci) and [Google GC](https://console.cloud.google.com/gcr/images/datadoghq/global/ci) registries.\n\n```shell\ndocker pull datadog/ci\n```\n\nThis example demonstrates how to run a command using the container and passing in the API and app keys:\n\n```shell\nexport DD_API_KEY=$(cat /secret/dd_api_key)\nexport DD_APP_KEY=$(cat /secret/dd_app_key)\ndocker run --rm -it -v $(pwd):/w -e DD_API_KEY -e DD_APP_KEY datadog/ci \u003ccommand\u003e [\u003csubcommand\u003e] [options]\n```\n\n#### Building your own container image\n\nYou can build an image using the provided [Dockerfile](https://github.com/DataDog/datadog-ci/blob/master/container/Dockerfile):\n\n```sh\ncd container\ndocker build --tag datadog-ci .\n```\n\nOptionally, you can use the `VERSION` build argument to build an image for a specific version:\n\n```sh\ndocker build --build-arg \"VERSION=v3.9.0\" --tag datadog-ci .\n```\n\n## Migration guide\n\nIf you are upgrading from a previous major version, read our [MIGRATING.md](MIGRATING.md) document to understand the changes and how to adapt your scripts.\n\n## Development\n\nBefore contributing to this open source project, read our [CONTRIBUTING.md](CONTRIBUTING.md) document.\n\n## License\n\n[Apache License, v2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadog%2Fdatadog-ci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatadog%2Fdatadog-ci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadog%2Fdatadog-ci/lists"}