@datadog/datadog-ci 2.11.0 → 2.13.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 +5 -4
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/gate/api.d.ts +7 -0
- package/dist/commands/gate/api.js +41 -0
- package/dist/commands/gate/api.js.map +1 -0
- package/dist/commands/gate/cli.d.ts +1 -0
- package/dist/commands/gate/cli.js +5 -0
- package/dist/commands/gate/cli.js.map +1 -0
- package/dist/commands/gate/evaluate.d.ts +13 -0
- package/dist/commands/gate/evaluate.js +106 -0
- package/dist/commands/gate/evaluate.js.map +1 -0
- package/dist/commands/gate/interfaces.d.ts +31 -0
- package/dist/commands/gate/interfaces.js +3 -0
- package/dist/commands/gate/interfaces.js.map +1 -0
- package/dist/commands/gate/renderer.d.ts +8 -0
- package/dist/commands/gate/renderer.js +84 -0
- package/dist/commands/gate/renderer.js.map +1 -0
- package/dist/commands/gate/utils.d.ts +8 -0
- package/dist/commands/gate/utils.js +40 -0
- package/dist/commands/gate/utils.js.map +1 -0
- package/dist/commands/git-metadata/gitdb.js +1 -1
- package/dist/commands/git-metadata/gitdb.js.map +1 -1
- package/dist/commands/junit/api.d.ts +2 -3
- package/dist/commands/junit/api.js +1 -3
- package/dist/commands/junit/api.js.map +1 -1
- package/dist/commands/junit/interfaces.d.ts +1 -3
- package/dist/commands/junit/renderer.js +4 -4
- package/dist/commands/junit/renderer.js.map +1 -1
- package/dist/commands/junit/upload.d.ts +1 -0
- package/dist/commands/junit/upload.js +29 -14
- package/dist/commands/junit/upload.js.map +1 -1
- package/dist/commands/lambda/constants.d.ts +1 -3
- package/dist/commands/lambda/constants.js +2 -4
- package/dist/commands/lambda/constants.js.map +1 -1
- package/dist/commands/lambda/functions/commons.d.ts +2 -2
- package/dist/commands/lambda/functions/instrument.js +1 -1
- package/dist/commands/lambda/functions/instrument.js.map +1 -1
- package/dist/commands/sarif/renderer.d.ts +1 -0
- package/dist/commands/sarif/renderer.js +14 -2
- package/dist/commands/sarif/renderer.js.map +1 -1
- package/dist/commands/sarif/upload.js +5 -1
- package/dist/commands/sarif/upload.js.map +1 -1
- package/dist/commands/sourcemaps/upload.js +1 -0
- package/dist/commands/sourcemaps/upload.js.map +1 -1
- package/dist/commands/stepfunctions/awsCommands.d.ts +16 -0
- package/dist/commands/stepfunctions/awsCommands.js +215 -0
- package/dist/commands/stepfunctions/awsCommands.js.map +1 -0
- package/dist/commands/stepfunctions/cli.d.ts +1 -0
- package/dist/commands/stepfunctions/cli.js +6 -0
- package/dist/commands/stepfunctions/cli.js.map +1 -0
- package/dist/commands/stepfunctions/constants.d.ts +2 -0
- package/dist/commands/stepfunctions/constants.js +6 -0
- package/dist/commands/stepfunctions/constants.js.map +1 -0
- package/dist/commands/stepfunctions/helpers.d.ts +15 -0
- package/dist/commands/stepfunctions/helpers.js +55 -0
- package/dist/commands/stepfunctions/helpers.js.map +1 -0
- package/dist/commands/stepfunctions/instrument.d.ts +10 -0
- package/dist/commands/stepfunctions/instrument.js +242 -0
- package/dist/commands/stepfunctions/instrument.js.map +1 -0
- package/dist/commands/stepfunctions/uninstrument.d.ts +7 -0
- package/dist/commands/stepfunctions/uninstrument.js +140 -0
- package/dist/commands/stepfunctions/uninstrument.js.map +1 -0
- package/dist/commands/synthetics/index.d.ts +1 -0
- package/dist/commands/synthetics/index.js +3 -1
- package/dist/commands/synthetics/index.js.map +1 -1
- package/dist/helpers/ci.js +1 -1
- package/dist/helpers/ci.js.map +1 -1
- package/dist/helpers/logger.d.ts +4 -1
- package/dist/helpers/logger.js +12 -2
- package/dist/helpers/logger.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -47,6 +47,7 @@ The following values are available for each `<command>`. See the corresponding d
|
|
|
47
47
|
- `metric`: [Metric](src/commands/metric)
|
|
48
48
|
- `react-native`: [React Native sourcemaps](src/commands/react-native/)
|
|
49
49
|
- `sourcemaps`: [Browser sourcemaps](src/commands/sourcemaps/)
|
|
50
|
+
- `stepfunctions`: [Step Functions](src/commands/stepfunctions)
|
|
50
51
|
- `synthetics`: [Continuous Testing](src/commands/synthetics/)
|
|
51
52
|
- `tag`: [Tag](src/commands/tag)
|
|
52
53
|
- `trace`: [Trace](src/commands/trace)
|
|
@@ -145,7 +146,7 @@ To release a new version of `datadog-ci`:
|
|
|
145
146
|
1. Create a new branch for the version upgrade.
|
|
146
147
|
2. Update the `package.json` version, commit the change `vX.X.X` and tag it with `git tag vX.X.X`, based on the version you are upgrading to. You may refer to [Semantic Versioning](https://semver.org/#summary) to determine what level to increment.
|
|
147
148
|
3. Push the branch along with the tag to the upstream (GitHub) with `git push --tags origin name-of-the-branch`, create a Pull Request with the changes introduced in the description details, and get at least one approval. For example, see this [sample pull request](https://github.com/DataDog/datadog-ci/pull/78).
|
|
148
|
-
4.
|
|
149
|
+
4. Once you've received at least one approval, merge the Pull Request **with the "Create a merge commit" strategy**.
|
|
149
150
|
5. Create a GitHub Release from the [Tags page](https://github.com/DataDog/datadog-ci/tags) with the description of changes introduced.
|
|
150
151
|
6. Once the release has been created, a GitHub Action publishes the package. Make sure the job succeeds.
|
|
151
152
|
7. When the package has been published, go to the [Datadog GitLab pipelines](https://gitlab.ddbuild.io/DataDog/datadog-ci/-/pipelines), find the pipeline for your tag, and start the `build` stage to run the Docker image build jobs. Once the jobs pass, the `release` stage automatically triggers. Make sure all the jobs succeed.
|
|
@@ -165,12 +166,12 @@ To create a pre-release or releasing in a different channel:
|
|
|
165
166
|
|
|
166
167
|
1. Create a new branch for the channel you want to release to (`alpha`, `beta`, and more).
|
|
167
168
|
2. Create a PR for your feature branch with the channel branch as a base.
|
|
168
|
-
3. Pick a version following this format:
|
|
169
|
+
3. Pick a version following this format: `<version>-<channel>`. For example, `0.10.9-alpha`, `1-beta`, and more.
|
|
169
170
|
4. Update the `version` field in `package.json`.
|
|
170
|
-
5. Once you've received at least one approval, merge the Pull Request
|
|
171
|
+
5. Once you've received at least one approval, merge the Pull Request **with the "Create a merge commit" strategy**.
|
|
171
172
|
6. Create a [GitHub Release](https://github.com/DataDog/datadog-ci/releases/new?target=alpha&tag=0.10.9-alpha&prerelease=1&title=Alpha+prerelease):
|
|
172
173
|
- Target the channel branch.
|
|
173
|
-
- Pick a tag based on your version
|
|
174
|
+
- Pick a tag based on your version `<version>-<channel>`.
|
|
174
175
|
- Check the `This is a pre-release` checkbox.
|
|
175
176
|
7. Publish the release and an action publishes it on npm.
|
|
176
177
|
|
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const clipanion_1 = require("clipanion");
|
|
9
|
+
const BETA_COMMANDS = ['gate'];
|
|
9
10
|
const onError = (err) => {
|
|
10
11
|
console.log(err);
|
|
11
12
|
process.exitCode = 1;
|
|
@@ -19,6 +20,9 @@ const cli = new clipanion_1.Cli({
|
|
|
19
20
|
});
|
|
20
21
|
const commandsPath = `${__dirname}/commands`;
|
|
21
22
|
for (const commandFolder of fs_1.default.readdirSync(commandsPath)) {
|
|
23
|
+
if (BETA_COMMANDS.includes(commandFolder)) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
22
26
|
const commandPath = `${commandsPath}/${commandFolder}`;
|
|
23
27
|
if (fs_1.default.statSync(commandPath).isDirectory()) {
|
|
24
28
|
require(`${commandPath}/cli`).forEach((command) => cli.register(command));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AAEnB,yCAA6B;AAG7B,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAA;AAED,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AACxC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAEzC,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;CAClD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,GAAG,SAAS,WAAW,CAAA;AAC5C,KAAK,MAAM,aAAa,IAAI,YAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;IACxD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,aAAa,EAAE,CAAA;IACtD,IAAI,YAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;KACxF;CACF;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;CACH"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AAEnB,yCAA6B;AAG7B,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,CAAA;AAE9B,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAA;AAED,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AACxC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAEzC,MAAM,GAAG,GAAG,IAAI,eAAG,CAAC;IAClB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;CAClD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,GAAG,SAAS,WAAW,CAAA;AAC5C,KAAK,MAAM,aAAa,IAAI,YAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;IACxD,IAAI,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QACzC,SAAQ;KACT;IACD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,aAAa,EAAE,CAAA;IACtD,IAAI,YAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;KACxF;CACF;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;CACH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Writable } from 'stream';
|
|
2
|
+
import { AxiosPromise, AxiosRequestConfig } from 'axios';
|
|
3
|
+
import { EvaluationResponsePayload, Payload } from './interfaces';
|
|
4
|
+
export declare const evaluateGateRules: (request: (args: AxiosRequestConfig) => AxiosPromise<EvaluationResponsePayload>) => (evaluateRequest: Payload, write: Writable['write']) => Promise<import("axios").AxiosResponse<EvaluationResponsePayload>>;
|
|
5
|
+
export declare const apiConstructor: (baseIntakeUrl: string, apiKey: string, appKey: string) => {
|
|
6
|
+
evaluateGateRules: (evaluateRequest: Payload, write: Writable['write']) => Promise<import("axios").AxiosResponse<EvaluationResponsePayload>>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.apiConstructor = exports.evaluateGateRules = void 0;
|
|
13
|
+
const utils_1 = require("../../helpers/utils");
|
|
14
|
+
const evaluateGateRules = (request) => (evaluateRequest, write) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
const payload = JSON.stringify({
|
|
16
|
+
data: {
|
|
17
|
+
type: 'gate_evaluation',
|
|
18
|
+
attributes: {
|
|
19
|
+
tags: evaluateRequest.spanTags,
|
|
20
|
+
user_scope: evaluateRequest.userScope,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
return request({
|
|
25
|
+
data: payload,
|
|
26
|
+
headers: {
|
|
27
|
+
'Content-Type': 'application/json',
|
|
28
|
+
},
|
|
29
|
+
method: 'POST',
|
|
30
|
+
url: '/api/v2/quality-gates/evaluate',
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
exports.evaluateGateRules = evaluateGateRules;
|
|
34
|
+
const apiConstructor = (baseIntakeUrl, apiKey, appKey) => {
|
|
35
|
+
const serviceRequest = utils_1.getRequestBuilder({ baseUrl: baseIntakeUrl, apiKey, appKey });
|
|
36
|
+
return {
|
|
37
|
+
evaluateGateRules: exports.evaluateGateRules(serviceRequest),
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.apiConstructor = apiConstructor;
|
|
41
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/gate/api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,+CAAqD;AAI9C,MAAM,iBAAiB,GAAG,CAC/B,OAA8E,EAC9E,EAAE,CAAC,CAAO,eAAwB,EAAE,KAAwB,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,EAAE;YACJ,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,UAAU,EAAE,eAAe,CAAC,SAAS;aACtC;SACF;KACF,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,gCAAgC;KACtC,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AArBY,QAAA,iBAAiB,qBAqB7B;AAEM,MAAM,cAAc,GAAG,CAAC,aAAqB,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;IACtF,MAAM,cAAc,GAAG,yBAAiB,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAA;IAElF,OAAO;QACL,iBAAiB,EAAE,yBAAiB,CAAC,cAAc,CAAC;KACrD,CAAA;AACH,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/commands/gate/cli.ts"],"names":[],"mappings":";;AAAA,yCAA8C;AAE9C,MAAM,CAAC,OAAO,GAAG,CAAC,8BAAmB,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from 'clipanion';
|
|
2
|
+
export declare class GateEvaluateCommand extends Command {
|
|
3
|
+
private config;
|
|
4
|
+
private dryRun;
|
|
5
|
+
private failOnEmpty;
|
|
6
|
+
private userScope?;
|
|
7
|
+
private tags?;
|
|
8
|
+
execute(): Promise<number>;
|
|
9
|
+
private getApiHelper;
|
|
10
|
+
private getSpanTags;
|
|
11
|
+
private evaluateRules;
|
|
12
|
+
private handleEvaluationResponse;
|
|
13
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
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.GateEvaluateCommand = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const clipanion_1 = require("clipanion");
|
|
18
|
+
const ci_1 = require("../../helpers/ci");
|
|
19
|
+
const format_git_span_data_1 = require("../../helpers/git/format-git-span-data");
|
|
20
|
+
const tags_1 = require("../../helpers/tags");
|
|
21
|
+
const user_provided_git_1 = require("../../helpers/user-provided-git");
|
|
22
|
+
const api_1 = require("./api");
|
|
23
|
+
const renderer_1 = require("./renderer");
|
|
24
|
+
const utils_1 = require("./utils");
|
|
25
|
+
class GateEvaluateCommand extends clipanion_1.Command {
|
|
26
|
+
constructor() {
|
|
27
|
+
// TODO add usage
|
|
28
|
+
super(...arguments);
|
|
29
|
+
this.config = {
|
|
30
|
+
apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
|
|
31
|
+
appKey: process.env.DATADOG_APP_KEY,
|
|
32
|
+
envVarTags: process.env.DD_TAGS,
|
|
33
|
+
};
|
|
34
|
+
this.dryRun = false;
|
|
35
|
+
this.failOnEmpty = false;
|
|
36
|
+
}
|
|
37
|
+
execute() {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const api = this.getApiHelper();
|
|
40
|
+
const spanTags = yield this.getSpanTags();
|
|
41
|
+
const userScope = this.userScope ? utils_1.parseScope(this.userScope) : {};
|
|
42
|
+
const payload = {
|
|
43
|
+
spanTags,
|
|
44
|
+
userScope,
|
|
45
|
+
};
|
|
46
|
+
return this.evaluateRules(api, payload);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
getApiHelper() {
|
|
50
|
+
if (!this.config.apiKey) {
|
|
51
|
+
this.context.stdout.write(`Neither ${chalk_1.default.red.bold('DATADOG_API_KEY')} nor ${chalk_1.default.red.bold('DD_API_KEY')} is in your environment.\n`);
|
|
52
|
+
throw new Error('API key is missing');
|
|
53
|
+
}
|
|
54
|
+
if (!this.config.appKey) {
|
|
55
|
+
this.context.stdout.write(`Missing ${chalk_1.default.red.bold('DATADOG_APP_KEY')} in your environment.\n`);
|
|
56
|
+
throw new Error('APP key is missing');
|
|
57
|
+
}
|
|
58
|
+
return api_1.apiConstructor(utils_1.getBaseIntakeUrl(), this.config.apiKey, this.config.appKey);
|
|
59
|
+
}
|
|
60
|
+
getSpanTags() {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
const ciSpanTags = ci_1.getCISpanTags();
|
|
63
|
+
const gitSpanTags = yield format_git_span_data_1.getGitMetadata();
|
|
64
|
+
const userGitSpanTags = user_provided_git_1.getUserGitSpanTags();
|
|
65
|
+
const envVarTags = this.config.envVarTags ? tags_1.parseTags(this.config.envVarTags.split(',')) : {};
|
|
66
|
+
const cliTags = this.tags ? tags_1.parseTags(this.tags) : {};
|
|
67
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, gitSpanTags), ciSpanTags), userGitSpanTags), cliTags), envVarTags);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
evaluateRules(api, evaluateRequest) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
this.context.stdout.write(renderer_1.renderGateEvaluationInput(evaluateRequest));
|
|
73
|
+
if (this.dryRun) {
|
|
74
|
+
this.context.stdout.write(renderer_1.renderDryRunEvaluation());
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
// To be extended with retries, error handling, etc.
|
|
78
|
+
return api
|
|
79
|
+
.evaluateGateRules(evaluateRequest, this.context.stdout.write.bind(this.context.stdout))
|
|
80
|
+
.then((response) => {
|
|
81
|
+
return this.handleEvaluationResponse(response.data.data.attributes);
|
|
82
|
+
})
|
|
83
|
+
.catch((error) => {
|
|
84
|
+
// TODO Handle unavailability etc.
|
|
85
|
+
this.context.stderr.write(renderer_1.renderGateEvaluationError(error));
|
|
86
|
+
return 1;
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
handleEvaluationResponse(evaluationResponse) {
|
|
91
|
+
this.context.stdout.write(renderer_1.renderEvaluationResponse(evaluationResponse));
|
|
92
|
+
if (evaluationResponse.status === 'failed' || (evaluationResponse.status === 'empty' && this.failOnEmpty)) {
|
|
93
|
+
return 1;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return 0;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.GateEvaluateCommand = GateEvaluateCommand;
|
|
101
|
+
GateEvaluateCommand.addPath('gate', 'evaluate');
|
|
102
|
+
GateEvaluateCommand.addOption('dryRun', clipanion_1.Command.Boolean('--dry-run'));
|
|
103
|
+
GateEvaluateCommand.addOption('failOnEmpty', clipanion_1.Command.Boolean('--fail-on-empty'));
|
|
104
|
+
GateEvaluateCommand.addOption('userScope', clipanion_1.Command.Array('--scope'));
|
|
105
|
+
GateEvaluateCommand.addOption('tags', clipanion_1.Command.Array('--tags'));
|
|
106
|
+
//# sourceMappingURL=evaluate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/commands/gate/evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Writable } from 'stream';
|
|
3
|
+
import { AxiosPromise } from 'axios';
|
|
4
|
+
import { SpanTags } from '../../helpers/interfaces';
|
|
5
|
+
export interface Payload {
|
|
6
|
+
spanTags: SpanTags;
|
|
7
|
+
userScope: Record<string, string[]>;
|
|
8
|
+
}
|
|
9
|
+
export interface EvaluationResponsePayload {
|
|
10
|
+
data: {
|
|
11
|
+
attributes: EvaluationResponse;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
declare type GateStatus = 'passed' | 'failed' | 'empty';
|
|
15
|
+
export interface EvaluationResponse {
|
|
16
|
+
status: GateStatus;
|
|
17
|
+
rule_evaluations: RuleEvaluation[];
|
|
18
|
+
}
|
|
19
|
+
declare type RuleStatus = 'passed' | 'failed' | 'no_data';
|
|
20
|
+
export interface RuleEvaluation {
|
|
21
|
+
rule_id: string;
|
|
22
|
+
rule_name: string;
|
|
23
|
+
status: RuleStatus;
|
|
24
|
+
is_blocking: boolean;
|
|
25
|
+
failure_reason: string;
|
|
26
|
+
events_count: number;
|
|
27
|
+
}
|
|
28
|
+
export interface APIHelper {
|
|
29
|
+
evaluateGateRules(evaluateRequest: Payload, write: Writable['write']): AxiosPromise<EvaluationResponsePayload>;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/commands/gate/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EvaluationResponse, Payload, RuleEvaluation } from './interfaces';
|
|
2
|
+
export declare const renderEvaluationResponse: (evaluationResponse: EvaluationResponse) => string;
|
|
3
|
+
export declare const renderEmptyEvaluation: () => string;
|
|
4
|
+
export declare const renderStatus: (result: string) => string;
|
|
5
|
+
export declare const renderRuleEvaluation: (ruleEvaluation: RuleEvaluation) => string;
|
|
6
|
+
export declare const renderDryRunEvaluation: () => string;
|
|
7
|
+
export declare const renderGateEvaluationInput: (evaluateRequest: Payload) => string;
|
|
8
|
+
export declare const renderGateEvaluationError: (error: any) => string;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.renderGateEvaluationError = exports.renderGateEvaluationInput = exports.renderDryRunEvaluation = exports.renderRuleEvaluation = exports.renderStatus = exports.renderEmptyEvaluation = exports.renderEvaluationResponse = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const tags_1 = require("../../helpers/tags");
|
|
9
|
+
const ICONS = {
|
|
10
|
+
FAILED: '❌',
|
|
11
|
+
SUCCESS: '✅',
|
|
12
|
+
WARNING: '⚠️',
|
|
13
|
+
INFO: 'ℹ️',
|
|
14
|
+
};
|
|
15
|
+
const renderEvaluationResponse = (evaluationResponse) => {
|
|
16
|
+
if (evaluationResponse.status.toLowerCase() === 'empty') {
|
|
17
|
+
return exports.renderEmptyEvaluation();
|
|
18
|
+
}
|
|
19
|
+
let fullStr = '';
|
|
20
|
+
fullStr += chalk_1.default.green('Successfully evaluated rules for the current pipeline.\n');
|
|
21
|
+
fullStr += `Overall result: ${exports.renderStatus(evaluationResponse.status)}\n`;
|
|
22
|
+
fullStr += `Number of rules evaluated: ${chalk_1.default.bold(evaluationResponse.rule_evaluations.length)}\n`;
|
|
23
|
+
fullStr += '\n';
|
|
24
|
+
fullStr += chalk_1.default.yellow('####### Rules evaluated #######\n');
|
|
25
|
+
evaluationResponse.rule_evaluations.forEach((ruleEvaluation) => (fullStr += exports.renderRuleEvaluation(ruleEvaluation)));
|
|
26
|
+
return fullStr;
|
|
27
|
+
};
|
|
28
|
+
exports.renderEvaluationResponse = renderEvaluationResponse;
|
|
29
|
+
const renderEmptyEvaluation = () => {
|
|
30
|
+
return chalk_1.default.yellow(`${ICONS.WARNING} No matching rules were found in Datadog. Use the '--fail-on-empty' option to fail the command in this situation.\n`);
|
|
31
|
+
};
|
|
32
|
+
exports.renderEmptyEvaluation = renderEmptyEvaluation;
|
|
33
|
+
const renderStatus = (result) => {
|
|
34
|
+
switch (result.toLowerCase()) {
|
|
35
|
+
case 'passed':
|
|
36
|
+
return chalk_1.default.green(`Passed ${ICONS.SUCCESS} `);
|
|
37
|
+
case 'failed':
|
|
38
|
+
return chalk_1.default.red(`Failed ${ICONS.FAILED} `);
|
|
39
|
+
case 'no_data':
|
|
40
|
+
return chalk_1.default.yellow(`No Data ${ICONS.WARNING} `);
|
|
41
|
+
}
|
|
42
|
+
return 'Unknown Status: ' + result.toLowerCase();
|
|
43
|
+
};
|
|
44
|
+
exports.renderStatus = renderStatus;
|
|
45
|
+
const renderRuleEvaluation = (ruleEvaluation) => {
|
|
46
|
+
// TODO add URL here once we have it
|
|
47
|
+
let fullStr = '';
|
|
48
|
+
fullStr += `Rule ID: ${ruleEvaluation.rule_id}\n`;
|
|
49
|
+
fullStr += `Rule Name: ${ruleEvaluation.rule_name}\n`;
|
|
50
|
+
fullStr += `Status: ${exports.renderStatus(ruleEvaluation.status)}\n`;
|
|
51
|
+
if (ruleEvaluation.status.toLowerCase() === 'failed') {
|
|
52
|
+
fullStr += `${chalk_1.default.red.bold('Failure reason')}: ${ruleEvaluation.failure_reason}\n`;
|
|
53
|
+
}
|
|
54
|
+
fullStr += `${chalk_1.default.yellow('Blocking')}: ${ruleEvaluation.is_blocking}\n`;
|
|
55
|
+
fullStr += '\n';
|
|
56
|
+
return fullStr;
|
|
57
|
+
};
|
|
58
|
+
exports.renderRuleEvaluation = renderRuleEvaluation;
|
|
59
|
+
const renderDryRunEvaluation = () => {
|
|
60
|
+
return chalk_1.default.yellow('Dry run mode is enabled. Not evaluating the rules.');
|
|
61
|
+
};
|
|
62
|
+
exports.renderDryRunEvaluation = renderDryRunEvaluation;
|
|
63
|
+
const renderGateEvaluationInput = (evaluateRequest) => {
|
|
64
|
+
let fullStr = chalk_1.default.bold(`${ICONS.INFO} Evaluating rules matching the following information:\n`);
|
|
65
|
+
fullStr += `Repository: ${evaluateRequest.spanTags[tags_1.GIT_REPOSITORY_URL]}\n`;
|
|
66
|
+
fullStr += `Branch: ${evaluateRequest.spanTags[tags_1.GIT_BRANCH]}\n`;
|
|
67
|
+
for (const [scopeKey, scopeValue] of Object.entries(evaluateRequest.userScope)) {
|
|
68
|
+
const valueString = scopeValue.join(' OR ');
|
|
69
|
+
fullStr += `${scopeKey}: ${valueString}\n`;
|
|
70
|
+
}
|
|
71
|
+
fullStr += '\n';
|
|
72
|
+
return fullStr;
|
|
73
|
+
};
|
|
74
|
+
exports.renderGateEvaluationInput = renderGateEvaluationInput;
|
|
75
|
+
const renderGateEvaluationError = (error) => {
|
|
76
|
+
let fullStr = chalk_1.default.red('ERROR: Could not evaluate the rules.');
|
|
77
|
+
if (error.response) {
|
|
78
|
+
fullStr += chalk_1.default.red(` Error Status: ${error.response.status}`);
|
|
79
|
+
}
|
|
80
|
+
fullStr += '\n';
|
|
81
|
+
return fullStr;
|
|
82
|
+
};
|
|
83
|
+
exports.renderGateEvaluationError = renderGateEvaluationError;
|
|
84
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/gate/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const getBaseIntakeUrl: () => string;
|
|
2
|
+
/**
|
|
3
|
+
* Receives an array of the form ['key:value', 'key2:value2_1', 'key2:value2_2']
|
|
4
|
+
* and returns an object of the form {key: ['value'], key2: ['value2_1, value2_2']}
|
|
5
|
+
*/
|
|
6
|
+
export declare const parseScope: (scope: string[]) => {
|
|
7
|
+
[key: string]: string[];
|
|
8
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseScope = exports.getBaseIntakeUrl = void 0;
|
|
4
|
+
const getBaseIntakeUrl = () => {
|
|
5
|
+
if (process.env.DATADOG_SITE || process.env.DD_SITE) {
|
|
6
|
+
return `https://quality-gates.${process.env.DATADOG_SITE || process.env.DD_SITE}`;
|
|
7
|
+
}
|
|
8
|
+
return 'https://quality-gates.datadoghq.com';
|
|
9
|
+
};
|
|
10
|
+
exports.getBaseIntakeUrl = getBaseIntakeUrl;
|
|
11
|
+
/**
|
|
12
|
+
* Receives an array of the form ['key:value', 'key2:value2_1', 'key2:value2_2']
|
|
13
|
+
* and returns an object of the form {key: ['value'], key2: ['value2_1, value2_2']}
|
|
14
|
+
*/
|
|
15
|
+
const parseScope = (scope) => {
|
|
16
|
+
try {
|
|
17
|
+
return scope.reduce((acc, keyValuePair) => {
|
|
18
|
+
if (!keyValuePair.includes(':')) {
|
|
19
|
+
return acc;
|
|
20
|
+
}
|
|
21
|
+
const firstColon = keyValuePair.indexOf(':');
|
|
22
|
+
const key = keyValuePair.substring(0, firstColon);
|
|
23
|
+
const value = keyValuePair.substring(firstColon + 1);
|
|
24
|
+
if (acc.hasOwnProperty(key)) {
|
|
25
|
+
if (!acc[key].includes(value)) {
|
|
26
|
+
acc[key].push(value);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
acc[key] = [value];
|
|
31
|
+
}
|
|
32
|
+
return acc;
|
|
33
|
+
}, {});
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.parseScope = parseScope;
|
|
40
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/gate/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;QACnD,OAAO,yBAAyB,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;KAClF;IAED,OAAO,qCAAqC,CAAA;AAC9C,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B;AAED;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,KAAe,EAAE,EAAE;IAC5C,IAAI;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAA8B,EAAE,YAAY,EAAE,EAAE;YACnE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/B,OAAO,GAAG,CAAA;aACX;YAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACjD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YAEpD,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;iBACrB;aACF;iBAAM;gBACL,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aACnB;YAED,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC,CAAA;KACP;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAA;KACV;AACH,CAAC,CAAA;AAxBY,QAAA,UAAU,cAwBtB"}
|
|
@@ -116,7 +116,7 @@ const getLatestLocalCommits = (git) => __awaiter(void 0, void 0, void 0, functio
|
|
|
116
116
|
const unshallowRepositoryWhenNeeded = (log, git) => __awaiter(void 0, void 0, void 0, function* () {
|
|
117
117
|
const isShallow = (yield git.revparse('--is-shallow-repository')) === 'true';
|
|
118
118
|
if (isShallow) {
|
|
119
|
-
log.info('[unshallow] Git repository is a shallow clone
|
|
119
|
+
log.info('[unshallow] Git repository is a shallow clone, unshallowing it...');
|
|
120
120
|
log.info('[unshallow] Setting remote.origin.partialclonefilter to "blob:none" to avoid fetching file content');
|
|
121
121
|
yield git.addConfig('remote.origin.partialclonefilter', 'blob:none');
|
|
122
122
|
log.info(`[unshallow] Running git fetch --shallow-since="${MAX_HISTORY.oldestCommits}" --update-shallow --refetch`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitdb.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/gitdb.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gitdb.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/gitdb.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Writable } from 'stream';
|
|
2
1
|
import type { AxiosPromise, AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
3
2
|
import { Payload } from './interfaces';
|
|
4
3
|
export declare const datadogSite: string;
|
|
5
4
|
export declare const intakeUrl: string;
|
|
6
5
|
export declare const apiUrl: string;
|
|
7
|
-
export declare const uploadJUnitXML: (request: (args: AxiosRequestConfig) => AxiosPromise<AxiosResponse>) => (jUnitXML: Payload
|
|
6
|
+
export declare const uploadJUnitXML: (request: (args: AxiosRequestConfig) => AxiosPromise<AxiosResponse>) => (jUnitXML: Payload) => Promise<AxiosResponse<AxiosResponse<any>>>;
|
|
8
7
|
export declare const apiConstructor: (baseIntakeUrl: string, apiKey: string) => {
|
|
9
|
-
uploadJUnitXML: (jUnitXML: Payload
|
|
8
|
+
uploadJUnitXML: (jUnitXML: Payload) => Promise<AxiosResponse<AxiosResponse<any>>>;
|
|
10
9
|
};
|
|
@@ -20,16 +20,14 @@ const form_data_1 = __importDefault(require("form-data"));
|
|
|
20
20
|
const file_1 = require("../../helpers/file");
|
|
21
21
|
const tags_1 = require("../../helpers/tags");
|
|
22
22
|
const utils_1 = require("../../helpers/utils");
|
|
23
|
-
const renderer_1 = require("./renderer");
|
|
24
23
|
// Dependency follows-redirects sets a default maxBodyLength of 10 MB https://github.com/follow-redirects/follow-redirects/blob/b774a77e582b97174813b3eaeb86931becba69db/index.js#L391
|
|
25
24
|
// We don't want any hard limit enforced by the CLI, the backend will enforce a max size by returning 413 errors.
|
|
26
25
|
const maxBodyLength = Infinity;
|
|
27
26
|
exports.datadogSite = process.env.DATADOG_SITE || process.env.DD_SITE || 'datadoghq.com';
|
|
28
27
|
exports.intakeUrl = `https://cireport-intake.${exports.datadogSite}`;
|
|
29
28
|
exports.apiUrl = `https://api.${exports.datadogSite}`;
|
|
30
|
-
const uploadJUnitXML = (request) => (jUnitXML
|
|
29
|
+
const uploadJUnitXML = (request) => (jUnitXML) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
30
|
const form = new form_data_1.default();
|
|
32
|
-
write(renderer_1.renderUpload(jUnitXML));
|
|
33
31
|
let fileName;
|
|
34
32
|
try {
|
|
35
33
|
fileName = path_1.default.parse(jUnitXML.xmlPath).name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/junit/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAmB;AACnB,gDAAuB;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/junit/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,+BAA+B;AAI/B,0DAAgC;AAEhC,6CAAkD;AAClD,6CAAuE;AACvE,+CAAqD;AAIrD,sLAAsL;AACtL,iHAAiH;AACjH,MAAM,aAAa,GAAG,QAAQ,CAAA;AAEjB,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,eAAe,CAAA;AAChF,QAAA,SAAS,GAAG,2BAA2B,mBAAW,EAAE,CAAA;AACpD,QAAA,MAAM,GAAG,eAAe,mBAAW,EAAE,CAAA;AAE3C,MAAM,cAAc,GAAG,CAAC,OAAkE,EAAE,EAAE,CAAC,CACpG,QAAiB,EACjB,EAAE;IACF,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAA;IAE3B,IAAI,QAAQ,CAAA;IACZ,IAAI;QACF,QAAQ,GAAG,cAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;KAC7C;IAAC,OAAO,CAAC,EAAE;QACV,QAAQ,GAAG,mBAAmB,CAAA;KAC/B;IAED,MAAM,QAAQ,iCACZ,OAAO,EAAE,QAAQ,CAAC,OAAO,IACtB,QAAQ,CAAC,QAAQ,KACpB,sBAAsB,EAAE,GAAG,EAC3B,cAAc,EAAE,QAAQ,CAAC,QAAQ,GAClC,CAAA;IAED,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxB,QAAQ,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAA;KACrC;IAED,IAAI,QAAQ,CAAC,SAAS,EAAE;QACtB,QAAQ,CAAC,yBAAyB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAA;KACzD;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAC,CAAC,CAAA;IAExE,IAAI,cAAc,GAAG,GAAG,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,cAAO,CAAC,EAAE,CAAA;IAE3E,IAAI,QAAQ,CAAC,sBAAe,CAAC,EAAE;QAC7B,cAAc,GAAG,GAAG,cAAc,IAAI,QAAQ,CAAC,sBAAe,CAAC,EAAE,CAAA;KAClE;IACD,IAAI,QAAQ,CAAC,iBAAU,CAAC,EAAE;QACxB,cAAc,GAAG,GAAG,cAAc,IAAI,QAAQ,CAAC,iBAAU,CAAC,EAAE,CAAA;KAC7D;IAED,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,YAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAU,EAAE,CAAC,EAAE;QAC7F,QAAQ,EAAE,GAAG,sBAAe,CAAC,cAAc,CAAC,SAAS;KACtD,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;QAC1B,aAAa;QACb,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,iBAAiB;KACvB,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AAjDY,QAAA,cAAc,kBAiD1B;AAEM,MAAM,cAAc,GAAG,CAAC,aAAqB,EAAE,MAAc,EAAE,EAAE;IACtE,MAAM,aAAa,GAAG,yBAAiB,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAC,CAAC,CAAA;IAEzE,OAAO;QACL,cAAc,EAAE,sBAAc,CAAC,aAAa,CAAC;KAC9C,CAAA;AACH,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Writable } from 'stream';
|
|
3
1
|
import { AxiosPromise, AxiosResponse } from 'axios';
|
|
4
2
|
import { SpanTags } from '../../helpers/interfaces';
|
|
5
3
|
export interface Payload {
|
|
@@ -11,5 +9,5 @@ export interface Payload {
|
|
|
11
9
|
xpathTags?: Record<string, string>;
|
|
12
10
|
}
|
|
13
11
|
export interface APIHelper {
|
|
14
|
-
uploadJUnitXML(jUnitXML: Payload
|
|
12
|
+
uploadJUnitXML(jUnitXML: Payload): AxiosPromise<AxiosResponse>;
|
|
15
13
|
}
|
|
@@ -32,11 +32,11 @@ const renderRetriedUpload = (payload, errorMessage, attempt) => {
|
|
|
32
32
|
};
|
|
33
33
|
exports.renderRetriedUpload = renderRetriedUpload;
|
|
34
34
|
const renderSuccessfulUpload = (dryRun, fileCount, duration) => {
|
|
35
|
-
return chalk_1.default.green(`${dryRun ? '[DRYRUN] ' : ''}${ICONS.SUCCESS} Uploaded ${fileCount} files in ${duration} seconds
|
|
35
|
+
return chalk_1.default.green(`${dryRun ? '[DRYRUN] ' : ''}${ICONS.SUCCESS} Uploaded ${fileCount} files in ${duration} seconds.`);
|
|
36
36
|
};
|
|
37
37
|
exports.renderSuccessfulUpload = renderSuccessfulUpload;
|
|
38
38
|
const renderSuccessfulGitDBSync = (dryRun, elapsed) => {
|
|
39
|
-
return chalk_1.default.green(`${dryRun ? '[DRYRUN] ' : ''}${ICONS.SUCCESS} Synced git metadata in ${elapsed} seconds
|
|
39
|
+
return chalk_1.default.green(`${dryRun ? '[DRYRUN] ' : ''}${ICONS.SUCCESS} Synced git metadata in ${elapsed} seconds.`);
|
|
40
40
|
};
|
|
41
41
|
exports.renderSuccessfulGitDBSync = renderSuccessfulGitDBSync;
|
|
42
42
|
const renderSuccessfulCommand = (spanTags, service, env) => {
|
|
@@ -59,7 +59,7 @@ const renderSuccessfulCommand = (spanTags, service, env) => {
|
|
|
59
59
|
exports.renderSuccessfulCommand = renderSuccessfulCommand;
|
|
60
60
|
const renderDryRunUpload = (payload) => `[DRYRUN] ${exports.renderUpload(payload)}`;
|
|
61
61
|
exports.renderDryRunUpload = renderDryRunUpload;
|
|
62
|
-
const renderUpload = (payload) => `Uploading jUnit XML test report file in ${payload.xmlPath}
|
|
62
|
+
const renderUpload = (payload) => `Uploading jUnit XML test report file in ${payload.xmlPath}`;
|
|
63
63
|
exports.renderUpload = renderUpload;
|
|
64
64
|
const renderCommandInfo = (basePaths, service, concurrency, dryRun) => {
|
|
65
65
|
let fullStr = '';
|
|
@@ -73,7 +73,7 @@ const renderCommandInfo = (basePaths, service, concurrency, dryRun) => {
|
|
|
73
73
|
else {
|
|
74
74
|
fullStr += chalk_1.default.green(`Will look for jUnit XML files in ${basePaths.join(', ')}\n`);
|
|
75
75
|
}
|
|
76
|
-
fullStr += chalk_1.default.green(`service: ${service}
|
|
76
|
+
fullStr += chalk_1.default.green(`service: ${service}`);
|
|
77
77
|
return fullStr;
|
|
78
78
|
};
|
|
79
79
|
exports.renderCommandInfo = renderCommandInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/junit/renderer.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAEvB,kDAAyB;AAKzB,mCAAgE;AAEhE,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;CACd,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,YAAoB,EAAE,EAAE;IACzE,MAAM,YAAY,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAA;IAEnD,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,0BAA0B,YAAY,KAAK,YAAY,IAAI,CAAC,CAAA;AAC9F,CAAC,CAAA;AAJY,QAAA,iBAAiB,qBAI7B;AAEM,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,YAAoB,EAAE,EAAE;IAC3E,MAAM,YAAY,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAA;IAE3D,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,+BAA+B,YAAY,KAAK,YAAY,IAAI,CAAC,CAAA;AACnG,CAAC,CAAA;AAJY,QAAA,kBAAkB,sBAI9B;AAEM,MAAM,qBAAqB,GAAG,CAAC,GAAQ,EAAE,EAAE;IAChD,OAAO,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,iCAAiC,GAAG,IAAI,CAAC,CAAA;AAChF,CAAC,CAAA;AAFY,QAAA,qBAAqB,yBAEjC;AAEM,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,YAAoB,EAAE,OAAe,EAAE,EAAE;IAC7F,MAAM,YAAY,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAA;IAE3D,OAAO,eAAK,CAAC,MAAM,CAAC,YAAY,OAAO,8BAA8B,YAAY,KAAK,YAAY,IAAI,CAAC,CAAA;AACzG,CAAC,CAAA;AAJY,QAAA,mBAAmB,uBAI/B;AAEM,MAAM,sBAAsB,GAAG,CAAC,MAAe,EAAE,SAAiB,EAAE,QAAgB,EAAE,EAAE;IAC7F,OAAO,eAAK,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/junit/renderer.ts"],"names":[],"mappings":"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"}
|