@datadog/datadog-ci 2.40.3 → 2.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/commands/deployment/cli.js +2 -1
- package/dist/commands/deployment/cli.js.map +1 -1
- package/dist/commands/deployment/correlate.d.ts +18 -0
- package/dist/commands/deployment/correlate.js +154 -0
- package/dist/commands/deployment/correlate.js.map +1 -0
- package/dist/commands/dsyms/utils.js +2 -4
- package/dist/commands/dsyms/utils.js.map +1 -1
- package/dist/commands/elf-symbols/elf.d.ts +5 -3
- package/dist/commands/elf-symbols/elf.js +18 -16
- package/dist/commands/elf-symbols/elf.js.map +1 -1
- package/dist/commands/elf-symbols/helpers.js +1 -1
- package/dist/commands/elf-symbols/interfaces.d.ts +6 -2
- package/dist/commands/elf-symbols/upload.d.ts +3 -0
- package/dist/commands/elf-symbols/upload.js +46 -22
- package/dist/commands/elf-symbols/upload.js.map +1 -1
- package/dist/commands/sarif/renderer.d.ts +1 -1
- package/dist/commands/sarif/renderer.js +5 -2
- package/dist/commands/sarif/renderer.js.map +1 -1
- package/dist/commands/sarif/upload.d.ts +1 -0
- package/dist/commands/sarif/upload.js +12 -35
- package/dist/commands/sarif/upload.js.map +1 -1
- package/dist/commands/sarif/validation.d.ts +15 -0
- package/dist/commands/sarif/validation.js +78 -0
- package/dist/commands/sarif/validation.js.map +1 -0
- package/dist/commands/sbom/upload.d.ts +1 -0
- package/dist/commands/sbom/upload.js +6 -14
- package/dist/commands/sbom/upload.js.map +1 -1
- package/dist/commands/synthetics/batch.js +3 -2
- package/dist/commands/synthetics/batch.js.map +1 -1
- package/dist/commands/synthetics/compatibility.d.ts +2 -2
- package/dist/commands/synthetics/compatibility.js +26 -26
- package/dist/commands/synthetics/compatibility.js.map +1 -1
- package/dist/commands/synthetics/interfaces.d.ts +3 -2
- package/dist/commands/synthetics/interfaces.js.map +1 -1
- package/dist/commands/synthetics/reporters/junit.d.ts +1 -0
- package/dist/commands/synthetics/reporters/junit.js +1 -0
- package/dist/commands/synthetics/reporters/junit.js.map +1 -1
- package/dist/commands/synthetics/run-tests-command.d.ts +1 -0
- package/dist/commands/synthetics/run-tests-command.js +25 -17
- package/dist/commands/synthetics/run-tests-command.js.map +1 -1
- package/dist/commands/synthetics/utils/internal.d.ts +4 -0
- package/dist/commands/synthetics/utils/internal.js +37 -2
- package/dist/commands/synthetics/utils/internal.js.map +1 -1
- package/dist/commands/synthetics/utils/public.d.ts +3 -0
- package/dist/commands/synthetics/utils/public.js +3 -0
- package/dist/commands/synthetics/utils/public.js.map +1 -1
- package/dist/helpers/git/get-git-data.d.ts +2 -0
- package/dist/helpers/git/get-git-data.js +11 -1
- package/dist/helpers/git/get-git-data.js.map +1 -1
- package/dist/helpers/tags.d.ts +2 -1
- package/dist/helpers/tags.js +3 -2
- package/dist/helpers/tags.js.map +1 -1
- package/package.json +14 -12
- package/dist/__tests__/cli.test.d.ts +0 -1
- package/dist/__tests__/cli.test.js +0 -41
- package/dist/__tests__/cli.test.js.map +0 -1
- package/dist/commands/cloud-run/__tests__/fixtures.d.ts +0 -2
- package/dist/commands/cloud-run/__tests__/fixtures.js +0 -12
- package/dist/commands/cloud-run/__tests__/fixtures.js.map +0 -1
- package/dist/commands/cloud-run/__tests__/flare.test.d.ts +0 -1
- package/dist/commands/cloud-run/__tests__/flare.test.js +0 -557
- package/dist/commands/cloud-run/__tests__/flare.test.js.map +0 -1
- package/dist/commands/deployment/__tests__/mark.test.d.ts +0 -1
- package/dist/commands/deployment/__tests__/mark.test.js +0 -47
- package/dist/commands/deployment/__tests__/mark.test.js.map +0 -1
- package/dist/commands/dora/__tests__/deployment.test.d.ts +0 -1
- package/dist/commands/dora/__tests__/deployment.test.js +0 -201
- package/dist/commands/dora/__tests__/deployment.test.js.map +0 -1
- package/dist/commands/dsyms/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/dsyms/__tests__/upload.test.js +0 -346
- package/dist/commands/dsyms/__tests__/upload.test.js.map +0 -1
- package/dist/commands/dsyms/__tests__/utils.test.d.ts +0 -1
- package/dist/commands/dsyms/__tests__/utils.test.js +0 -103
- package/dist/commands/dsyms/__tests__/utils.test.js.map +0 -1
- package/dist/commands/elf-symbols/__tests__/elf.test.d.ts +0 -1
- package/dist/commands/elf-symbols/__tests__/elf.test.js +0 -813
- package/dist/commands/elf-symbols/__tests__/elf.test.js.map +0 -1
- package/dist/commands/elf-symbols/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/elf-symbols/__tests__/upload.test.js +0 -249
- package/dist/commands/elf-symbols/__tests__/upload.test.js.map +0 -1
- package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/flutter-symbols/__tests__/upload.test.js +0 -617
- package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +0 -1
- package/dist/commands/gate/__tests__/evaluate.test.d.ts +0 -1
- package/dist/commands/gate/__tests__/evaluate.test.js +0 -398
- package/dist/commands/gate/__tests__/evaluate.test.js.map +0 -1
- package/dist/commands/gate/__tests__/scope.test.d.ts +0 -1
- package/dist/commands/gate/__tests__/scope.test.js +0 -29
- package/dist/commands/gate/__tests__/scope.test.js.map +0 -1
- package/dist/commands/git-metadata/__tests__/git.test.d.ts +0 -1
- package/dist/commands/git-metadata/__tests__/git.test.js +0 -132
- package/dist/commands/git-metadata/__tests__/git.test.js.map +0 -1
- package/dist/commands/git-metadata/__tests__/gitdb.test.d.ts +0 -1
- package/dist/commands/git-metadata/__tests__/gitdb.test.js +0 -1386
- package/dist/commands/git-metadata/__tests__/gitdb.test.js.map +0 -1
- package/dist/commands/git-metadata/__tests__/library.test.d.ts +0 -1
- package/dist/commands/git-metadata/__tests__/library.test.js +0 -118
- package/dist/commands/git-metadata/__tests__/library.test.js.map +0 -1
- package/dist/commands/git-metadata/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/git-metadata/__tests__/upload.test.js +0 -52
- package/dist/commands/git-metadata/__tests__/upload.test.js.map +0 -1
- package/dist/commands/junit/__tests__/id.test.d.ts +0 -1
- package/dist/commands/junit/__tests__/id.test.js +0 -24
- package/dist/commands/junit/__tests__/id.test.js.map +0 -1
- package/dist/commands/junit/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/junit/__tests__/upload.test.js +0 -495
- package/dist/commands/junit/__tests__/upload.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/fixtures.d.ts +0 -51
- package/dist/commands/lambda/__tests__/fixtures.js +0 -146
- package/dist/commands/lambda/__tests__/fixtures.js.map +0 -1
- package/dist/commands/lambda/__tests__/flare.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/flare.test.js +0 -730
- package/dist/commands/lambda/__tests__/flare.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/functions/commons.test.js +0 -791
- package/dist/commands/lambda/__tests__/functions/commons.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +0 -386
- package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +0 -721
- package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +0 -513
- package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +0 -33
- package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/instrument.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/instrument.test.js +0 -1511
- package/dist/commands/lambda/__tests__/instrument.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/loggroup.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/loggroup.test.js +0 -340
- package/dist/commands/lambda/__tests__/loggroup.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/prompt.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/prompt.test.js +0 -206
- package/dist/commands/lambda/__tests__/prompt.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/tags.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/tags.test.js +0 -305
- package/dist/commands/lambda/__tests__/tags.test.js.map +0 -1
- package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +0 -1
- package/dist/commands/lambda/__tests__/uninstrument.test.js +0 -722
- package/dist/commands/lambda/__tests__/uninstrument.test.js.map +0 -1
- package/dist/commands/measure/__tests__/measure.test.d.ts +0 -1
- package/dist/commands/measure/__tests__/measure.test.js +0 -110
- package/dist/commands/measure/__tests__/measure.test.js.map +0 -1
- package/dist/commands/react-native/__tests__/codepush.test.d.ts +0 -1
- package/dist/commands/react-native/__tests__/codepush.test.js +0 -161
- package/dist/commands/react-native/__tests__/codepush.test.js.map +0 -1
- package/dist/commands/react-native/__tests__/interfaces.test.d.ts +0 -1
- package/dist/commands/react-native/__tests__/interfaces.test.js +0 -33
- package/dist/commands/react-native/__tests__/interfaces.test.js.map +0 -1
- package/dist/commands/react-native/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/react-native/__tests__/upload.test.js +0 -238
- package/dist/commands/react-native/__tests__/upload.test.js.map +0 -1
- package/dist/commands/react-native/__tests__/utils.test.d.ts +0 -1
- package/dist/commands/react-native/__tests__/utils.test.js +0 -27
- package/dist/commands/react-native/__tests__/utils.test.js.map +0 -1
- package/dist/commands/react-native/__tests__/xcode.test.d.ts +0 -1
- package/dist/commands/react-native/__tests__/xcode.test.js +0 -465
- package/dist/commands/react-native/__tests__/xcode.test.js.map +0 -1
- package/dist/commands/sarif/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/sarif/__tests__/upload.test.js +0 -228
- package/dist/commands/sarif/__tests__/upload.test.js.map +0 -1
- package/dist/commands/sbom/__tests__/payload.test.d.ts +0 -1
- package/dist/commands/sbom/__tests__/payload.test.js +0 -262
- package/dist/commands/sbom/__tests__/payload.test.js.map +0 -1
- package/dist/commands/sbom/__tests__/validation.test.d.ts +0 -1
- package/dist/commands/sbom/__tests__/validation.test.js +0 -41
- package/dist/commands/sbom/__tests__/validation.test.js.map +0 -1
- package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/sourcemaps/__tests__/upload.test.js +0 -270
- package/dist/commands/sourcemaps/__tests__/upload.test.js.map +0 -1
- package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +0 -1
- package/dist/commands/sourcemaps/__tests__/utils.test.js +0 -31
- package/dist/commands/sourcemaps/__tests__/utils.test.js.map +0 -1
- package/dist/commands/stepfunctions/__tests__/awsCommands.test.d.ts +0 -1
- package/dist/commands/stepfunctions/__tests__/awsCommands.test.js +0 -192
- package/dist/commands/stepfunctions/__tests__/awsCommands.test.js.map +0 -1
- package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.d.ts +0 -6
- package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js +0 -45
- package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js.map +0 -1
- package/dist/commands/stepfunctions/__tests__/fixtures/cli.d.ts +0 -5
- package/dist/commands/stepfunctions/__tests__/fixtures/cli.js +0 -19
- package/dist/commands/stepfunctions/__tests__/fixtures/cli.js.map +0 -1
- package/dist/commands/stepfunctions/__tests__/helpers.test.d.ts +0 -1
- package/dist/commands/stepfunctions/__tests__/helpers.test.js +0 -205
- package/dist/commands/stepfunctions/__tests__/helpers.test.js.map +0 -1
- package/dist/commands/stepfunctions/__tests__/instrument.test.d.ts +0 -1
- package/dist/commands/stepfunctions/__tests__/instrument.test.js +0 -431
- package/dist/commands/stepfunctions/__tests__/instrument.test.js.map +0 -1
- package/dist/commands/stepfunctions/__tests__/uninstrument.test.d.ts +0 -1
- package/dist/commands/stepfunctions/__tests__/uninstrument.test.js +0 -166
- package/dist/commands/stepfunctions/__tests__/uninstrument.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/api.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/api.test.js +0 -422
- package/dist/commands/synthetics/__tests__/api.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/cli.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/cli.test.js +0 -1325
- package/dist/commands/synthetics/__tests__/cli.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/fixtures.d.ts +0 -149
- package/dist/commands/synthetics/__tests__/fixtures.js +0 -507
- package/dist/commands/synthetics/__tests__/fixtures.js.map +0 -1
- package/dist/commands/synthetics/__tests__/mobile.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/mobile.test.js +0 -376
- package/dist/commands/synthetics/__tests__/mobile.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/reporters/default.test.js +0 -354
- package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/reporters/junit.test.js +0 -353
- package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js +0 -232
- package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/run-tests-lib.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/run-tests-lib.test.js +0 -735
- package/dist/commands/synthetics/__tests__/run-tests-lib.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/test.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/test.test.js +0 -33
- package/dist/commands/synthetics/__tests__/test.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +0 -21
- package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +0 -80
- package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +0 -109
- package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/utils/internal.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/utils/internal.test.js +0 -186
- package/dist/commands/synthetics/__tests__/utils/internal.test.js.map +0 -1
- package/dist/commands/synthetics/__tests__/utils/public.test.d.ts +0 -1
- package/dist/commands/synthetics/__tests__/utils/public.test.js +0 -1526
- package/dist/commands/synthetics/__tests__/utils/public.test.js.map +0 -1
- package/dist/commands/tag/__tests__/tag.test.d.ts +0 -1
- package/dist/commands/tag/__tests__/tag.test.js +0 -75
- package/dist/commands/tag/__tests__/tag.test.js.map +0 -1
- package/dist/commands/trace/__tests__/trace.test.d.ts +0 -1
- package/dist/commands/trace/__tests__/trace.test.js +0 -145
- package/dist/commands/trace/__tests__/trace.test.js.map +0 -1
- package/dist/commands/unity-symbols/__tests__/upload.test.d.ts +0 -1
- package/dist/commands/unity-symbols/__tests__/upload.test.js +0 -369
- package/dist/commands/unity-symbols/__tests__/upload.test.js.map +0 -1
- package/dist/helpers/__tests__/app.test.d.ts +0 -1
- package/dist/helpers/__tests__/app.test.js +0 -31
- package/dist/helpers/__tests__/app.test.js.map +0 -1
- package/dist/helpers/__tests__/ci.test.d.ts +0 -1
- package/dist/helpers/__tests__/ci.test.js +0 -252
- package/dist/helpers/__tests__/ci.test.js.map +0 -1
- package/dist/helpers/__tests__/fixtures.d.ts +0 -33
- package/dist/helpers/__tests__/fixtures.js +0 -71
- package/dist/helpers/__tests__/fixtures.js.map +0 -1
- package/dist/helpers/__tests__/flare.test.d.ts +0 -1
- package/dist/helpers/__tests__/flare.test.js +0 -226
- package/dist/helpers/__tests__/flare.test.js.map +0 -1
- package/dist/helpers/__tests__/fs.test.d.ts +0 -1
- package/dist/helpers/__tests__/fs.test.js +0 -189
- package/dist/helpers/__tests__/fs.test.js.map +0 -1
- package/dist/helpers/__tests__/plist.test.d.ts +0 -1
- package/dist/helpers/__tests__/plist.test.js +0 -43
- package/dist/helpers/__tests__/plist.test.js.map +0 -1
- package/dist/helpers/__tests__/prompt.test.d.ts +0 -1
- package/dist/helpers/__tests__/prompt.test.js +0 -71
- package/dist/helpers/__tests__/prompt.test.js.map +0 -1
- package/dist/helpers/__tests__/retry.test.d.ts +0 -1
- package/dist/helpers/__tests__/retry.test.js +0 -99
- package/dist/helpers/__tests__/retry.test.js.map +0 -1
- package/dist/helpers/__tests__/tags.test.d.ts +0 -1
- package/dist/helpers/__tests__/tags.test.js +0 -71
- package/dist/helpers/__tests__/tags.test.js.map +0 -1
- package/dist/helpers/__tests__/upload.test.d.ts +0 -1
- package/dist/helpers/__tests__/upload.test.js +0 -231
- package/dist/helpers/__tests__/upload.test.js.map +0 -1
- package/dist/helpers/__tests__/user-provided-git.test.d.ts +0 -1
- package/dist/helpers/__tests__/user-provided-git.test.js +0 -119
- package/dist/helpers/__tests__/user-provided-git.test.js.map +0 -1
- package/dist/helpers/__tests__/utils.test.d.ts +0 -1
- package/dist/helpers/__tests__/utils.test.js +0 -429
- package/dist/helpers/__tests__/utils.test.js.map +0 -1
- package/dist/helpers/__tests__/validation.test.d.ts +0 -1
- package/dist/helpers/__tests__/validation.test.js +0 -25
- package/dist/helpers/__tests__/validation.test.js.map +0 -1
- package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +0 -1
- package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +0 -103
- package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +0 -1
- package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +0 -1
- package/dist/helpers/git/__tests__/format-git-span-data.test.js +0 -121
- package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +0 -1
- package/dist/helpers/git/__tests__/get-git-data.test.d.ts +0 -1
- package/dist/helpers/git/__tests__/get-git-data.test.js +0 -72
- package/dist/helpers/git/__tests__/get-git-data.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -104,6 +104,7 @@ The following are **beta** commands, you can enable them with with `DD_BETA_COMM
|
|
|
104
104
|
|
|
105
105
|
#### `deployment`
|
|
106
106
|
- `mark`: Mark a CI job as a [deployment](src/commands/deployment). [📚](https://docs.datadoghq.com/continuous_delivery/)
|
|
107
|
+
- `correlate`: [Correlate](src/commands/deployment/) GitOps CD deployments with application repositories CI pipelines. [📚](https://docs.datadoghq.com/continuous_delivery/deployments/argocd#correlate-deployments-with-ci-pipelines)
|
|
107
108
|
|
|
108
109
|
#### `dora`
|
|
109
110
|
- `deployment`: Send a new deployment event for [DORA Metrics](src/commands/dora) to Datadog. [📚](https://docs.datadoghq.com/dora_metrics/)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const correlate_1 = require("./correlate");
|
|
3
4
|
const mark_1 = require("./mark");
|
|
4
|
-
module.exports = [mark_1.DeploymentMarkCommand];
|
|
5
|
+
module.exports = [mark_1.DeploymentMarkCommand, correlate_1.DeploymentCorrelateCommand];
|
|
5
6
|
//# sourceMappingURL=cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/commands/deployment/cli.ts"],"names":[],"mappings":";;AAAA,iCAA4C;AAE5C,MAAM,CAAC,OAAO,GAAG,CAAC,4BAAqB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/commands/deployment/cli.ts"],"names":[],"mappings":";;AAAA,2CAAsD;AACtD,iCAA4C;AAE5C,MAAM,CAAC,OAAO,GAAG,CAAC,4BAAqB,EAAE,sCAA0B,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Command } from 'clipanion';
|
|
2
|
+
/**
|
|
3
|
+
* This command collects environment variables and git information to correlate commits from the
|
|
4
|
+
* source code repository to the configuration repository. This allows to connect pipelines triggering
|
|
5
|
+
* changes on the configuration repository to deployments from gitOps CD providers
|
|
6
|
+
*/
|
|
7
|
+
export declare class DeploymentCorrelateCommand extends Command {
|
|
8
|
+
static paths: string[][];
|
|
9
|
+
static usage: import("clipanion").Usage;
|
|
10
|
+
private cdProviderParam;
|
|
11
|
+
private configurationRepo;
|
|
12
|
+
private dryRun;
|
|
13
|
+
private config;
|
|
14
|
+
private logger;
|
|
15
|
+
execute(): Promise<1 | undefined>;
|
|
16
|
+
private sendCorrelationData;
|
|
17
|
+
private validateTags;
|
|
18
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DeploymentCorrelateCommand = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const clipanion_1 = require("clipanion");
|
|
18
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
19
|
+
const ci_1 = require("../../helpers/ci");
|
|
20
|
+
const get_git_data_1 = require("../../helpers/git/get-git-data");
|
|
21
|
+
const logger_1 = require("../../helpers/logger");
|
|
22
|
+
const retry_1 = require("../../helpers/retry");
|
|
23
|
+
const tags_1 = require("../../helpers/tags");
|
|
24
|
+
const utils_1 = require("../../helpers/utils");
|
|
25
|
+
/**
|
|
26
|
+
* This command collects environment variables and git information to correlate commits from the
|
|
27
|
+
* source code repository to the configuration repository. This allows to connect pipelines triggering
|
|
28
|
+
* changes on the configuration repository to deployments from gitOps CD providers
|
|
29
|
+
*/
|
|
30
|
+
class DeploymentCorrelateCommand extends clipanion_1.Command {
|
|
31
|
+
constructor() {
|
|
32
|
+
super(...arguments);
|
|
33
|
+
this.cdProviderParam = clipanion_1.Option.String('--provider');
|
|
34
|
+
this.configurationRepo = clipanion_1.Option.String('--config-repo');
|
|
35
|
+
this.dryRun = clipanion_1.Option.Boolean('--dry-run', false);
|
|
36
|
+
this.config = {
|
|
37
|
+
apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
|
|
38
|
+
};
|
|
39
|
+
this.logger = new logger_1.Logger((s) => this.context.stdout.write(s), logger_1.LogLevel.INFO);
|
|
40
|
+
}
|
|
41
|
+
execute() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
if (!this.config.apiKey) {
|
|
44
|
+
this.logger.error(`Neither ${chalk_1.default.red.bold('DATADOG_API_KEY')} nor ${chalk_1.default.red.bold('DD_API_KEY')} is in your environment.`);
|
|
45
|
+
return 1;
|
|
46
|
+
}
|
|
47
|
+
if (!this.cdProviderParam) {
|
|
48
|
+
this.logger.error('Missing CD provider. It must be provided with --provider');
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
this.cdProviderParam = this.cdProviderParam.toLowerCase();
|
|
52
|
+
const tags = (0, ci_1.getCISpanTags)() || {};
|
|
53
|
+
if (!this.validateTags(tags)) {
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
let envVars = {};
|
|
57
|
+
if (tags[tags_1.CI_ENV_VARS]) {
|
|
58
|
+
envVars = JSON.parse(tags[tags_1.CI_ENV_VARS]);
|
|
59
|
+
delete tags[tags_1.CI_ENV_VARS];
|
|
60
|
+
}
|
|
61
|
+
const ciEnv = Object.assign(Object.assign({}, tags), envVars);
|
|
62
|
+
const git = (0, simple_git_1.default)({
|
|
63
|
+
baseDir: process.cwd(),
|
|
64
|
+
binary: 'git',
|
|
65
|
+
maxConcurrentProcesses: 2, // max 2 git commands at the same time
|
|
66
|
+
});
|
|
67
|
+
const currentBranch = yield (0, get_git_data_1.gitCurrentBranch)(git);
|
|
68
|
+
if (!currentBranch) {
|
|
69
|
+
this.logger.error('Could not get current branch');
|
|
70
|
+
return 1;
|
|
71
|
+
}
|
|
72
|
+
let localCommitShas;
|
|
73
|
+
if (this.configurationRepo) {
|
|
74
|
+
localCommitShas = yield (0, get_git_data_1.gitLocalCommitShas)(git, currentBranch);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
;
|
|
78
|
+
[this.configurationRepo, localCommitShas] = yield Promise.all([
|
|
79
|
+
(0, get_git_data_1.gitRepositoryURL)(git),
|
|
80
|
+
(0, get_git_data_1.gitLocalCommitShas)(git, currentBranch),
|
|
81
|
+
]);
|
|
82
|
+
}
|
|
83
|
+
if (this.configurationRepo === undefined || this.configurationRepo === '') {
|
|
84
|
+
this.logger.error('Could not retrieve repository URL, check out a repository or provide it with --config-repo');
|
|
85
|
+
return 1;
|
|
86
|
+
}
|
|
87
|
+
yield this.sendCorrelationData(ciEnv[tags_1.CI_PROVIDER_NAME], localCommitShas, ciEnv, this.config.apiKey);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
sendCorrelationData(ciProvider, configCommitShas, ciEnv, apiKey) {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
const correlateEvent = {
|
|
93
|
+
type: 'ci_app_deployment_correlate',
|
|
94
|
+
attributes: {
|
|
95
|
+
ci_provider: ciProvider,
|
|
96
|
+
cd_provider: this.cdProviderParam,
|
|
97
|
+
config_repo_url: this.configurationRepo,
|
|
98
|
+
config_commit_shas: configCommitShas,
|
|
99
|
+
ci_env: ciEnv,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
if (this.dryRun) {
|
|
103
|
+
this.logger.info(`[DRYRUN] Sending correlation event\n data: ` + JSON.stringify(correlateEvent, undefined, 2));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const site = process.env.DATADOG_SITE || process.env.DD_SITE || 'datadoghq.com';
|
|
107
|
+
const baseAPIURL = `https://${(0, utils_1.getApiHostForSite)(site)}`;
|
|
108
|
+
const request = (0, utils_1.getRequestBuilder)({ baseUrl: baseAPIURL, apiKey });
|
|
109
|
+
const doRequest = () => request({
|
|
110
|
+
data: {
|
|
111
|
+
data: correlateEvent,
|
|
112
|
+
},
|
|
113
|
+
method: 'post',
|
|
114
|
+
url: '/api/v2/ci/deployments/correlate',
|
|
115
|
+
});
|
|
116
|
+
try {
|
|
117
|
+
yield (0, retry_1.retryRequest)(doRequest, {
|
|
118
|
+
maxTimeout: 30000,
|
|
119
|
+
minTimeout: 5000,
|
|
120
|
+
onRetry: (e, attempt) => {
|
|
121
|
+
this.logger.warn(`[attempt ${attempt}] Could not send deployment correlation data. Retrying...: ${e.message}\n`);
|
|
122
|
+
},
|
|
123
|
+
retries: 5,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
this.logger.error(`Failed to send deployment correlation data: ${error.message}`);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
validateTags(tags) {
|
|
132
|
+
if (!tags[tags_1.GIT_REPOSITORY_URL]) {
|
|
133
|
+
this.logger.error('Could not extract the source code repository URL from the CI environment variables');
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
if (!tags[tags_1.GIT_SHA]) {
|
|
137
|
+
this.logger.error('Could not extract the commit SHA from the CI environment variables');
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.DeploymentCorrelateCommand = DeploymentCorrelateCommand;
|
|
144
|
+
DeploymentCorrelateCommand.paths = [['deployment', 'correlate']];
|
|
145
|
+
DeploymentCorrelateCommand.usage = clipanion_1.Command.Usage({
|
|
146
|
+
category: 'CI Visibility',
|
|
147
|
+
description: 'Correlate GitOps CD deployments with CI pipelines.',
|
|
148
|
+
details: `
|
|
149
|
+
This command will correlate the pipeline with a GitOps CD deployment.\n
|
|
150
|
+
See README for additional details.
|
|
151
|
+
`,
|
|
152
|
+
examples: [['Correlate an Argo CD deployment', 'datadog-ci deployment correlate --provider argocd']],
|
|
153
|
+
});
|
|
154
|
+
//# sourceMappingURL=correlate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correlate.js","sourceRoot":"","sources":["../../../src/commands/deployment/correlate.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ exports.pluralize = exports.getBaseIntakeUrl = exports.executeLipo = exports.exe
|
|
|
16
16
|
const fs_1 = require("fs");
|
|
17
17
|
const os_1 = require("os");
|
|
18
18
|
const path_1 = __importDefault(require("path"));
|
|
19
|
-
const rimraf_1 = require("rimraf");
|
|
19
|
+
const rimraf_1 = __importDefault(require("rimraf"));
|
|
20
20
|
const utils_1 = require("../../helpers/utils");
|
|
21
21
|
const isZipFile = (filepath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
22
|
try {
|
|
@@ -36,9 +36,7 @@ const createUniqueTmpDirectory = () => __awaiter(void 0, void 0, void 0, functio
|
|
|
36
36
|
return directoryPath;
|
|
37
37
|
});
|
|
38
38
|
exports.createUniqueTmpDirectory = createUniqueTmpDirectory;
|
|
39
|
-
const deleteDirectory = (directoryPath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
-
yield (0, rimraf_1.rimraf)(directoryPath);
|
|
41
|
-
});
|
|
39
|
+
const deleteDirectory = (directoryPath) => __awaiter(void 0, void 0, void 0, function* () { return new Promise((resolve, reject) => (0, rimraf_1.default)(directoryPath, () => resolve())); });
|
|
42
40
|
exports.deleteDirectory = deleteDirectory;
|
|
43
41
|
const zipDirectoryToArchive = (directoryPath, archivePath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
42
|
const cwd = path_1.default.dirname(directoryPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/dsyms/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,2BAAyB;AACzB,gDAAuB;AAEvB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/dsyms/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,10 @@ export type ElfFileMetadata = {
|
|
|
10
10
|
gnuBuildId: string;
|
|
11
11
|
goBuildId: string;
|
|
12
12
|
fileHash: string;
|
|
13
|
-
|
|
13
|
+
elfType: string;
|
|
14
14
|
hasDebugInfo: boolean;
|
|
15
|
-
|
|
15
|
+
hasDynamicSymbolTable: boolean;
|
|
16
|
+
hasSymbolTable: boolean;
|
|
16
17
|
hasCode: boolean;
|
|
17
18
|
error?: Error;
|
|
18
19
|
};
|
|
@@ -93,7 +94,8 @@ export declare const isSupportedArch: (arch: string) => boolean;
|
|
|
93
94
|
export declare const isSupportedElfType: (type: string) => boolean;
|
|
94
95
|
export declare const getSectionInfo: (sections: SectionHeader[]) => {
|
|
95
96
|
hasDebugInfo: boolean;
|
|
96
|
-
|
|
97
|
+
hasSymbolTable: boolean;
|
|
98
|
+
hasDynamicSymbolTable: boolean;
|
|
97
99
|
hasCode: boolean;
|
|
98
100
|
};
|
|
99
101
|
export declare const getElfFileMetadata: (filename: string) => Promise<ElfFileMetadata>;
|
|
@@ -64,14 +64,6 @@ const SUPPORTED_ARCHS = [
|
|
|
64
64
|
elf_constants_1.MACHINE_TYPES_DESCRIPTION[elf_constants_1.MachineType.EM_ARM],
|
|
65
65
|
];
|
|
66
66
|
const SUPPORTED_ELF_TYPES = [elf_constants_1.ELF_TYPES_DESCRIPTION[elf_constants_1.ElfFileType.ET_DYN], elf_constants_1.ELF_TYPES_DESCRIPTION[elf_constants_1.ElfFileType.ET_EXEC]];
|
|
67
|
-
const BFD_TARGET_FOR_ARCH = {
|
|
68
|
-
[elf_constants_1.MACHINE_TYPES_DESCRIPTION[elf_constants_1.MachineType.EM_AARCH64]]: 'elf64-littleaarch64',
|
|
69
|
-
[elf_constants_1.MACHINE_TYPES_DESCRIPTION[elf_constants_1.MachineType.EM_X86_64]]: 'elf64-x86_64',
|
|
70
|
-
};
|
|
71
|
-
const GENERIC_BFD_TARGET_FOR_ARCH = {
|
|
72
|
-
[elf_constants_1.MACHINE_TYPES_DESCRIPTION[elf_constants_1.MachineType.EM_AARCH64]]: 'elf64-little',
|
|
73
|
-
[elf_constants_1.MACHINE_TYPES_DESCRIPTION[elf_constants_1.MachineType.EM_X86_64]]: 'elf64-little',
|
|
74
|
-
};
|
|
75
67
|
const getBFDTargetForArch = (arch, littleEndian, elfClass) => {
|
|
76
68
|
if (arch === elf_constants_1.MACHINE_TYPES_DESCRIPTION[elf_constants_1.MachineType.EM_X86_64]) {
|
|
77
69
|
return `elf${elfClass}-x86-64`;
|
|
@@ -293,9 +285,10 @@ const isSupportedElfType = (type) => {
|
|
|
293
285
|
exports.isSupportedElfType = isSupportedElfType;
|
|
294
286
|
const getSectionInfo = (sections) => {
|
|
295
287
|
const hasDebugInfo = sections.some((section) => section.name === '.debug_info');
|
|
296
|
-
const
|
|
288
|
+
const hasSymbolTable = sections.some((section) => section.name === '.symtab');
|
|
289
|
+
const hasDynamicSymbolTable = sections.some((section) => section.name === '.dynsym');
|
|
297
290
|
const hasCode = sections.some((section) => section.name === '.text' && section.sh_type === elf_constants_1.SectionHeaderType.SHT_PROGBITS);
|
|
298
|
-
return { hasDebugInfo,
|
|
291
|
+
return { hasDebugInfo, hasSymbolTable, hasDynamicSymbolTable, hasCode };
|
|
299
292
|
};
|
|
300
293
|
exports.getSectionInfo = getSectionInfo;
|
|
301
294
|
const getElfFileMetadata = (filename) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -308,9 +301,10 @@ const getElfFileMetadata = (filename) => __awaiter(void 0, void 0, void 0, funct
|
|
|
308
301
|
gnuBuildId: '',
|
|
309
302
|
goBuildId: '',
|
|
310
303
|
fileHash: '',
|
|
311
|
-
|
|
304
|
+
elfType: '',
|
|
312
305
|
hasDebugInfo: false,
|
|
313
|
-
|
|
306
|
+
hasSymbolTable: false,
|
|
307
|
+
hasDynamicSymbolTable: false,
|
|
314
308
|
hasCode: false,
|
|
315
309
|
};
|
|
316
310
|
let fileHandle;
|
|
@@ -322,23 +316,31 @@ const getElfFileMetadata = (filename) => __awaiter(void 0, void 0, void 0, funct
|
|
|
322
316
|
metadata.littleEndian = elfHeader.littleEndian;
|
|
323
317
|
metadata.elfClass = elfHeader.elfClass === elf_constants_1.ElfClass.ELFCLASS64 ? 64 : 32;
|
|
324
318
|
metadata.arch = elf_constants_1.MACHINE_TYPES_DESCRIPTION[elfHeader.e_machine];
|
|
325
|
-
metadata.
|
|
319
|
+
metadata.elfType = elf_constants_1.ELF_TYPES_DESCRIPTION[elfHeader.e_type];
|
|
326
320
|
}
|
|
327
321
|
metadata.error = error;
|
|
328
322
|
metadata.isElf = isElf;
|
|
329
|
-
if (!isElf || error || !(0, exports.isSupportedArch)(metadata.arch) || !(0, exports.isSupportedElfType)(metadata.
|
|
323
|
+
if (!isElf || error || !(0, exports.isSupportedArch)(metadata.arch) || !(0, exports.isSupportedElfType)(metadata.elfType)) {
|
|
330
324
|
return metadata;
|
|
331
325
|
}
|
|
332
326
|
const sectionHeaders = yield (0, exports.readElfSectionHeaderTable)(reader, elfHeader);
|
|
333
327
|
const { gnuBuildId, goBuildId } = yield (0, exports.getBuildIds)(reader, sectionHeaders, elfHeader);
|
|
334
|
-
const { hasDebugInfo,
|
|
328
|
+
const { hasDebugInfo, hasSymbolTable, hasDynamicSymbolTable, hasCode } = (0, exports.getSectionInfo)(sectionHeaders);
|
|
335
329
|
let fileHash = '';
|
|
336
330
|
if (hasCode) {
|
|
337
331
|
// Only compute file hash if the file has code:
|
|
338
332
|
// if the file has no code, it is likely a debug info file and its hash is useless
|
|
339
333
|
fileHash = yield (0, exports.computeFileHash)(filename);
|
|
340
334
|
}
|
|
341
|
-
Object.assign(metadata, {
|
|
335
|
+
Object.assign(metadata, {
|
|
336
|
+
fileHash,
|
|
337
|
+
gnuBuildId,
|
|
338
|
+
goBuildId,
|
|
339
|
+
hasDebugInfo,
|
|
340
|
+
hasSymbolTable,
|
|
341
|
+
hasDynamicSymbolTable,
|
|
342
|
+
hasCode,
|
|
343
|
+
});
|
|
342
344
|
}
|
|
343
345
|
catch (error) {
|
|
344
346
|
metadata.error = error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elf.js","sourceRoot":"","sources":["../../../src/commands/elf-symbols/elf.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elf.js","sourceRoot":"","sources":["../../../src/commands/elf-symbols/elf.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ const getElfRequestBuilder = (apiKey, cliVersion, site) => (0, utils_1.getReques
|
|
|
17
17
|
apiKey,
|
|
18
18
|
baseUrl: (0, base_intake_url_1.getBaseSourcemapIntakeUrl)(site),
|
|
19
19
|
headers: new Map([
|
|
20
|
-
['DD-EVP-ORIGIN', 'datadog-
|
|
20
|
+
['DD-EVP-ORIGIN', 'datadog-ci_elf-symbols'],
|
|
21
21
|
['DD-EVP-ORIGIN-VERSION', cliVersion],
|
|
22
22
|
]),
|
|
23
23
|
overrideUrl: 'api/v2/srcmap',
|
|
@@ -2,13 +2,17 @@ export declare const TYPE_ELF_DEBUG_INFOS = "elf_symbol_file";
|
|
|
2
2
|
export declare const VALUE_NAME_ELF_DEBUG_INFOS = "elf_symbol_file";
|
|
3
3
|
export declare const ELF_DEBUG_INFOS_FILENAME = "elf_symbol_file";
|
|
4
4
|
export interface MappingMetadata {
|
|
5
|
-
arch?: string;
|
|
6
5
|
cli_version: string;
|
|
6
|
+
origin_version: string;
|
|
7
|
+
arch: string;
|
|
8
|
+
origin: string;
|
|
7
9
|
git_commit_sha?: string;
|
|
8
10
|
git_repository_url?: string;
|
|
9
|
-
platform?: string;
|
|
10
11
|
gnu_build_id: string;
|
|
11
12
|
go_build_id: string;
|
|
12
13
|
file_hash: string;
|
|
14
|
+
symbol_source: string;
|
|
15
|
+
filename: string;
|
|
13
16
|
type: string;
|
|
17
|
+
overwrite: boolean;
|
|
14
18
|
}
|
|
@@ -7,6 +7,8 @@ export declare class UploadCommand extends Command {
|
|
|
7
7
|
private configPath;
|
|
8
8
|
private maxConcurrency;
|
|
9
9
|
private repositoryUrl;
|
|
10
|
+
private acceptDynamicSymbolTableAsSymbolSource;
|
|
11
|
+
private replaceExisting;
|
|
10
12
|
private symbolsLocations;
|
|
11
13
|
private cliVersion;
|
|
12
14
|
private config;
|
|
@@ -15,6 +17,7 @@ export declare class UploadCommand extends Command {
|
|
|
15
17
|
private getApiKeyValidator;
|
|
16
18
|
private getGitDataPayload;
|
|
17
19
|
private getGitMetadata;
|
|
20
|
+
private getElfSymbolSource;
|
|
18
21
|
private getMappingMetadata;
|
|
19
22
|
private getMetricsLogger;
|
|
20
23
|
private getElfSymbolFiles;
|
|
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
exports.UploadCommand = void 0;
|
|
39
39
|
const fs_1 = __importDefault(require("fs"));
|
|
40
|
+
const path_1 = __importDefault(require("path"));
|
|
40
41
|
const clipanion_1 = require("clipanion");
|
|
41
42
|
const glob_1 = __importDefault(require("glob"));
|
|
42
43
|
const apikey_1 = require("../../helpers/apikey");
|
|
@@ -61,6 +62,8 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
61
62
|
this.configPath = clipanion_1.Option.String('--config');
|
|
62
63
|
this.maxConcurrency = clipanion_1.Option.String('--max-concurrency', '20', { validator: validation.isInteger() });
|
|
63
64
|
this.repositoryUrl = clipanion_1.Option.String('--repository-url');
|
|
65
|
+
this.acceptDynamicSymbolTableAsSymbolSource = clipanion_1.Option.Boolean('--upload-dynamic-symbols', false);
|
|
66
|
+
this.replaceExisting = clipanion_1.Option.Boolean('--replace-existing', false);
|
|
64
67
|
this.symbolsLocations = clipanion_1.Option.Rest({ required: 1 });
|
|
65
68
|
this.cliVersion = version_1.version;
|
|
66
69
|
this.config = {
|
|
@@ -136,17 +139,33 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
136
139
|
return undefined;
|
|
137
140
|
});
|
|
138
141
|
}
|
|
139
|
-
|
|
142
|
+
getElfSymbolSource(elfFileMetadata) {
|
|
143
|
+
if (elfFileMetadata.hasDebugInfo) {
|
|
144
|
+
return 'debug_info';
|
|
145
|
+
}
|
|
146
|
+
if (elfFileMetadata.hasSymbolTable) {
|
|
147
|
+
return 'symbol_table';
|
|
148
|
+
}
|
|
149
|
+
if (elfFileMetadata.hasDynamicSymbolTable) {
|
|
150
|
+
return 'dynamic_symbol_table';
|
|
151
|
+
}
|
|
152
|
+
return 'none';
|
|
153
|
+
}
|
|
154
|
+
getMappingMetadata(elfFileMetadata) {
|
|
140
155
|
var _a, _b;
|
|
141
156
|
return {
|
|
142
|
-
arch,
|
|
143
|
-
gnu_build_id: gnuBuildId,
|
|
144
|
-
go_build_id: goBuildId,
|
|
145
|
-
file_hash: fileHash,
|
|
146
157
|
cli_version: this.cliVersion,
|
|
158
|
+
origin_version: this.cliVersion,
|
|
159
|
+
origin: 'datadog-ci',
|
|
160
|
+
arch: elfFileMetadata.arch,
|
|
161
|
+
gnu_build_id: elfFileMetadata.gnuBuildId,
|
|
162
|
+
go_build_id: elfFileMetadata.goBuildId,
|
|
163
|
+
file_hash: elfFileMetadata.fileHash,
|
|
147
164
|
git_commit_sha: (_a = this.gitData) === null || _a === void 0 ? void 0 : _a.hash,
|
|
148
165
|
git_repository_url: (_b = this.gitData) === null || _b === void 0 ? void 0 : _b.remote,
|
|
149
|
-
|
|
166
|
+
symbol_source: this.getElfSymbolSource(elfFileMetadata),
|
|
167
|
+
filename: path_1.default.basename(elfFileMetadata.filename),
|
|
168
|
+
overwrite: this.replaceExisting,
|
|
150
169
|
type: interfaces_1.TYPE_ELF_DEBUG_INFOS,
|
|
151
170
|
};
|
|
152
171
|
}
|
|
@@ -182,41 +201,43 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
182
201
|
};
|
|
183
202
|
}
|
|
184
203
|
const filesMetadata = [];
|
|
185
|
-
for (const
|
|
186
|
-
const pathStat = yield fs_1.default.promises.lstat(
|
|
204
|
+
for (const p of paths) {
|
|
205
|
+
const pathStat = yield fs_1.default.promises.lstat(p);
|
|
187
206
|
if (pathStat.isDirectory()) {
|
|
188
207
|
// check if directory is readable and if not emit a warning
|
|
189
208
|
// eslint-disable-next-line no-bitwise
|
|
190
|
-
yield fs_1.default.promises.access(
|
|
191
|
-
reportFailure(`Skipped directory ${
|
|
209
|
+
yield fs_1.default.promises.access(p, fs_1.default.constants.R_OK | fs_1.default.constants.X_OK).catch(() => {
|
|
210
|
+
reportFailure(`Skipped directory ${p} because it is not readable`);
|
|
192
211
|
});
|
|
193
212
|
}
|
|
194
213
|
else if (pathStat.isFile()) {
|
|
195
214
|
// check that path is a file and is an ELF file
|
|
196
|
-
const metadata = yield (0, elf_1.getElfFileMetadata)(
|
|
215
|
+
const metadata = yield (0, elf_1.getElfFileMetadata)(p);
|
|
197
216
|
// handle all possible failures
|
|
198
217
|
if (!metadata.isElf) {
|
|
199
|
-
reportFailure(`Input location ${
|
|
218
|
+
reportFailure(`Input location ${p} is not an ELF file`);
|
|
200
219
|
continue;
|
|
201
220
|
}
|
|
202
221
|
if (metadata.error) {
|
|
203
|
-
reportFailure(`Error reading ELF file ${
|
|
222
|
+
reportFailure(`Error reading ELF file ${p}: ${metadata.error.message}`);
|
|
204
223
|
continue;
|
|
205
224
|
}
|
|
206
|
-
if (!(0, elf_1.isSupportedElfType)(metadata.
|
|
207
|
-
reportFailure(`Skipped ${
|
|
225
|
+
if (!(0, elf_1.isSupportedElfType)(metadata.elfType)) {
|
|
226
|
+
reportFailure(`Skipped ${p} because its not an executable, nor a shared library`);
|
|
208
227
|
continue;
|
|
209
228
|
}
|
|
210
229
|
if (!(0, elf_1.isSupportedArch)(metadata.arch)) {
|
|
211
|
-
reportFailure(`Skipped ${
|
|
230
|
+
reportFailure(`Skipped ${p} because it has an unsupported architecture (${metadata.arch})`);
|
|
212
231
|
continue;
|
|
213
232
|
}
|
|
214
233
|
if (!(metadata.gnuBuildId || metadata.goBuildId || metadata.fileHash)) {
|
|
215
|
-
reportFailure(`Skipped ${
|
|
234
|
+
reportFailure(`Skipped ${p} because it has no build id`);
|
|
216
235
|
continue;
|
|
217
236
|
}
|
|
218
|
-
if (!metadata.hasDebugInfo &&
|
|
219
|
-
|
|
237
|
+
if (!metadata.hasDebugInfo &&
|
|
238
|
+
!metadata.hasSymbolTable &&
|
|
239
|
+
(!metadata.hasDynamicSymbolTable || !this.acceptDynamicSymbolTableAsSymbolSource)) {
|
|
240
|
+
reportFailure(`Skipped ${p} because it has no debug info, nor symbols`);
|
|
220
241
|
continue;
|
|
221
242
|
}
|
|
222
243
|
filesMetadata.push(metadata);
|
|
@@ -233,7 +254,10 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
233
254
|
const buildId = (0, elf_1.getBuildId)(metadata);
|
|
234
255
|
const existing = buildIds.get(buildId);
|
|
235
256
|
if (existing) {
|
|
236
|
-
if ((metadata.hasDebugInfo && !existing.hasDebugInfo) ||
|
|
257
|
+
if ((metadata.hasDebugInfo && !existing.hasDebugInfo) ||
|
|
258
|
+
(metadata.hasSymbolTable && !existing.hasSymbolTable) ||
|
|
259
|
+
(metadata.hasDynamicSymbolTable && !existing.hasDynamicSymbolTable) // this probably should never happen
|
|
260
|
+
) {
|
|
237
261
|
// if we have a duplicate build_id, we keep the one with debug info and symbols
|
|
238
262
|
this.context.stderr.write((0, renderer_1.renderWarning)(`Duplicate build_id found: ${buildId} in ${metadata.filename} and ${existing.filename} - skipping ${existing.filename} because it has no debug info or symbols`));
|
|
239
263
|
buildIds.set(buildId, metadata);
|
|
@@ -259,7 +283,7 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
259
283
|
const tmpDirectory = yield (0, utils_2.createUniqueTmpDirectory)();
|
|
260
284
|
try {
|
|
261
285
|
const results = yield (0, concurrency_1.doWithMaxConcurrency)(this.maxConcurrency, elfFilesMetadata, (fileMetadata) => __awaiter(this, void 0, void 0, function* () {
|
|
262
|
-
const metadata = this.getMappingMetadata(fileMetadata
|
|
286
|
+
const metadata = this.getMappingMetadata(fileMetadata);
|
|
263
287
|
const outputFilename = (0, elf_1.getOutputFilenameFromBuildId)((0, elf_1.getBuildId)(fileMetadata));
|
|
264
288
|
const outputFilePath = (0, utils_1.buildPath)(tmpDirectory, outputFilename);
|
|
265
289
|
yield (0, elf_1.copyElfDebugInfo)(fileMetadata.filename, outputFilePath, fileMetadata, false);
|
|
@@ -370,7 +394,7 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
370
394
|
exports.UploadCommand = UploadCommand;
|
|
371
395
|
UploadCommand.paths = [['elf-symbols', 'upload']];
|
|
372
396
|
UploadCommand.usage = clipanion_1.Command.Usage({
|
|
373
|
-
category: '
|
|
397
|
+
category: 'Profiling',
|
|
374
398
|
description: 'Upload Elf debug info files to Datadog.',
|
|
375
399
|
details: `
|
|
376
400
|
This command will upload debug info from all Elf files found recursively in the given location in order to symbolicate profiles
|