@datadog/datadog-ci 3.1.0 → 3.3.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 +3 -0
- package/dist/__tests__/cli.test.js +1 -0
- package/dist/__tests__/cli.test.js.map +1 -1
- package/dist/commands/coverage/__tests__/upload.test.js +48 -80
- package/dist/commands/coverage/__tests__/upload.test.js.map +1 -1
- package/dist/commands/coverage/__tests__/utils.test.js +4 -14
- package/dist/commands/coverage/__tests__/utils.test.js.map +1 -1
- package/dist/commands/coverage/renderer.d.ts +0 -2
- package/dist/commands/coverage/renderer.js +1 -9
- package/dist/commands/coverage/renderer.js.map +1 -1
- package/dist/commands/coverage/upload.d.ts +2 -3
- package/dist/commands/coverage/upload.js +29 -88
- package/dist/commands/coverage/upload.js.map +1 -1
- package/dist/commands/coverage/utils.d.ts +0 -1
- package/dist/commands/coverage/utils.js +11 -35
- package/dist/commands/coverage/utils.js.map +1 -1
- package/dist/commands/elf-symbols/__tests__/elf.test.js +12 -9
- package/dist/commands/elf-symbols/__tests__/elf.test.js.map +1 -1
- package/dist/commands/elf-symbols/__tests__/upload.test.js +9 -5
- package/dist/commands/elf-symbols/__tests__/upload.test.js.map +1 -1
- package/dist/commands/elf-symbols/elf.d.ts +2 -11
- package/dist/commands/elf-symbols/elf.js +52 -68
- package/dist/commands/elf-symbols/elf.js.map +1 -1
- package/dist/commands/elf-symbols/upload.js +3 -3
- package/dist/commands/elf-symbols/upload.js.map +1 -1
- package/dist/commands/junit/__tests__/upload.test.js +114 -65
- package/dist/commands/junit/__tests__/upload.test.js.map +1 -1
- package/dist/commands/junit/renderer.d.ts +2 -2
- package/dist/commands/junit/renderer.js +3 -1
- package/dist/commands/junit/renderer.js.map +1 -1
- package/dist/commands/junit/upload.d.ts +2 -0
- package/dist/commands/junit/upload.js +41 -37
- package/dist/commands/junit/upload.js.map +1 -1
- package/dist/commands/junit/utils.d.ts +0 -1
- package/dist/commands/junit/utils.js +1 -11
- package/dist/commands/junit/utils.js.map +1 -1
- package/dist/commands/pe-symbols/__tests__/pe.test.d.ts +1 -0
- package/dist/commands/pe-symbols/__tests__/pe.test.js +81 -0
- package/dist/commands/pe-symbols/__tests__/pe.test.js.map +1 -0
- package/dist/commands/pe-symbols/cli.d.ts +1 -0
- package/dist/commands/pe-symbols/cli.js +5 -0
- package/dist/commands/pe-symbols/cli.js.map +1 -0
- package/dist/commands/pe-symbols/helpers.d.ts +4 -0
- package/dist/commands/pe-symbols/helpers.js +30 -0
- package/dist/commands/pe-symbols/helpers.js.map +1 -0
- package/dist/commands/pe-symbols/interfaces.d.ts +17 -0
- package/dist/commands/pe-symbols/interfaces.js +7 -0
- package/dist/commands/pe-symbols/interfaces.js.map +1 -0
- package/dist/commands/pe-symbols/pe-constants.d.ts +51 -0
- package/dist/commands/pe-symbols/pe-constants.js +160 -0
- package/dist/commands/pe-symbols/pe-constants.js.map +1 -0
- package/dist/commands/pe-symbols/pe.d.ts +35 -0
- package/dist/commands/pe-symbols/pe.js +248 -0
- package/dist/commands/pe-symbols/pe.js.map +1 -0
- package/dist/commands/pe-symbols/renderer.d.ts +19 -0
- package/dist/commands/pe-symbols/renderer.js +87 -0
- package/dist/commands/pe-symbols/renderer.js.map +1 -0
- package/dist/commands/pe-symbols/upload.d.ts +32 -0
- package/dist/commands/pe-symbols/upload.js +412 -0
- package/dist/commands/pe-symbols/upload.js.map +1 -0
- package/dist/commands/sarif/__tests__/upload.test.js +79 -6
- package/dist/commands/sarif/__tests__/upload.test.js.map +1 -1
- package/dist/commands/sarif/renderer.d.ts +1 -0
- package/dist/commands/sarif/renderer.js +4 -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 +3 -2
- package/dist/commands/sarif/upload.js.map +1 -1
- package/dist/commands/sbom/__tests__/payload.test.js +157 -26
- package/dist/commands/sbom/__tests__/payload.test.js.map +1 -1
- package/dist/commands/sbom/constants.d.ts +2 -0
- package/dist/commands/sbom/constants.js +4 -1
- package/dist/commands/sbom/constants.js.map +1 -1
- package/dist/commands/sbom/payload.js +44 -0
- package/dist/commands/sbom/payload.js.map +1 -1
- package/dist/commands/sbom/types.d.ts +4 -0
- package/dist/commands/sbom/upload.d.ts +1 -0
- package/dist/commands/sbom/upload.js +3 -2
- package/dist/commands/sbom/upload.js.map +1 -1
- package/dist/commands/synthetics/__tests__/api.test.js +2 -2
- package/dist/commands/synthetics/__tests__/api.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/batch.test.js +38 -37
- package/dist/commands/synthetics/__tests__/batch.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/build-and-test.test.d.ts +1 -0
- package/dist/commands/synthetics/__tests__/build-and-test.test.js +133 -0
- package/dist/commands/synthetics/__tests__/build-and-test.test.js.map +1 -0
- package/dist/commands/synthetics/__tests__/cli.test.js +83 -47
- package/dist/commands/synthetics/__tests__/cli.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/deploy-tests-lib.test.js +2 -2
- package/dist/commands/synthetics/__tests__/deploy-tests-lib.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/import-tests-lib.test.js +4 -4
- package/dist/commands/synthetics/__tests__/import-tests-lib.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/multilocator.test.js +13 -3
- package/dist/commands/synthetics/__tests__/multilocator.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/test.test.js +6 -7
- package/dist/commands/synthetics/__tests__/test.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +1 -1
- package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +1 -1
- package/dist/commands/synthetics/__tests__/utils/public.test.js +10 -9
- package/dist/commands/synthetics/__tests__/utils/public.test.js.map +1 -1
- package/dist/commands/synthetics/api.js +2 -2
- package/dist/commands/synthetics/api.js.map +1 -1
- package/dist/commands/synthetics/base-command.d.ts +29 -0
- package/dist/commands/synthetics/base-command.js +125 -0
- package/dist/commands/synthetics/base-command.js.map +1 -0
- package/dist/commands/synthetics/batch.d.ts +1 -0
- package/dist/commands/synthetics/batch.js +3 -3
- package/dist/commands/synthetics/batch.js.map +1 -1
- package/dist/commands/synthetics/build-and-test.d.ts +8 -0
- package/dist/commands/synthetics/build-and-test.js +102 -0
- package/dist/commands/synthetics/build-and-test.js.map +1 -0
- package/dist/commands/synthetics/deploy-tests-command.d.ts +8 -16
- package/dist/commands/synthetics/deploy-tests-command.js +19 -91
- package/dist/commands/synthetics/deploy-tests-command.js.map +1 -1
- package/dist/commands/synthetics/import-tests-command.d.ts +6 -14
- package/dist/commands/synthetics/import-tests-command.js +15 -83
- package/dist/commands/synthetics/import-tests-command.js.map +1 -1
- package/dist/commands/synthetics/index.d.ts +1 -1
- package/dist/commands/synthetics/index.js +6 -6
- package/dist/commands/synthetics/index.js.map +1 -1
- package/dist/commands/synthetics/interfaces.d.ts +5 -2
- package/dist/commands/synthetics/multilocator.d.ts +0 -1
- package/dist/commands/synthetics/multilocator.js +7 -17
- package/dist/commands/synthetics/multilocator.js.map +1 -1
- package/dist/commands/synthetics/run-tests-command.d.ts +12 -17
- package/dist/commands/synthetics/run-tests-command.js +133 -190
- package/dist/commands/synthetics/run-tests-command.js.map +1 -1
- package/dist/commands/synthetics/run-tests-lib.d.ts +1 -0
- package/dist/commands/synthetics/run-tests-lib.js +8 -4
- package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
- package/dist/commands/synthetics/test.d.ts +2 -0
- package/dist/commands/synthetics/test.js +9 -8
- package/dist/commands/synthetics/test.js.map +1 -1
- package/dist/commands/synthetics/upload-application-command.d.ts +6 -13
- package/dist/commands/synthetics/upload-application-command.js +22 -87
- package/dist/commands/synthetics/upload-application-command.js.map +1 -1
- package/dist/commands/synthetics/utils/internal.d.ts +2 -0
- package/dist/commands/synthetics/utils/internal.js +15 -1
- package/dist/commands/synthetics/utils/internal.js.map +1 -1
- package/dist/commands/synthetics/utils/public.js +1 -1
- package/dist/commands/synthetics/utils/public.js.map +1 -1
- package/dist/helpers/__tests__/ci.test.js +49 -0
- package/dist/helpers/__tests__/ci.test.js.map +1 -1
- package/dist/helpers/__tests__/tags.test.js +59 -0
- package/dist/helpers/__tests__/tags.test.js.map +1 -1
- package/dist/helpers/ci.d.ts +13 -0
- package/dist/helpers/ci.js +23 -1
- package/dist/helpers/ci.js.map +1 -1
- package/dist/helpers/file-finder.d.ts +17 -0
- package/dist/helpers/file-finder.js +138 -0
- package/dist/helpers/file-finder.js.map +1 -0
- package/dist/helpers/filereader.d.ts +21 -0
- package/dist/helpers/filereader.js +59 -0
- package/dist/helpers/filereader.js.map +1 -0
- package/dist/helpers/git/format-git-span-data.d.ts +1 -1
- package/dist/helpers/git/format-git-span-data.js +2 -2
- package/dist/helpers/git/format-git-span-data.js.map +1 -1
- package/dist/helpers/interfaces.d.ts +2 -1
- package/dist/helpers/prompt.d.ts +5 -3
- package/dist/helpers/prompt.js +14 -13
- package/dist/helpers/prompt.js.map +1 -1
- package/dist/helpers/tags.d.ts +1 -1
- package/dist/helpers/tags.js +4 -4
- package/dist/helpers/tags.js.map +1 -1
- package/dist/helpers/utils.d.ts +3 -0
- package/dist/helpers/utils.js +34 -1
- package/dist/helpers/utils.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,102 @@
|
|
|
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.spawnBuildPluginDevServer = exports.UnconfiguredBuildPluginError = exports.DEFAULT_BUILD_PLUGIN_PORT = void 0;
|
|
16
|
+
const child_process_1 = require("child_process");
|
|
17
|
+
const events_1 = require("events");
|
|
18
|
+
const axios_1 = __importDefault(require("axios"));
|
|
19
|
+
const internal_1 = require("./utils/internal");
|
|
20
|
+
exports.DEFAULT_BUILD_PLUGIN_PORT = 4000;
|
|
21
|
+
exports.UnconfiguredBuildPluginError = new Error(`
|
|
22
|
+
We couldn't detect the Datadog Build plugins within your build. Did you add it?
|
|
23
|
+
If not, you can learn more about it here: https://github.com/DataDog/build-plugins#readme
|
|
24
|
+
`);
|
|
25
|
+
const watchBuildPluginServerReadiness = (buildPluginServerUrl, abortSignal) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
return (0, internal_1.poll)(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
try {
|
|
28
|
+
const response = yield axios_1.default.get(buildPluginServerUrl, { signal: abortSignal });
|
|
29
|
+
const { status, publicPrefix = '' } = response.data;
|
|
30
|
+
if (status === 'success') {
|
|
31
|
+
return {
|
|
32
|
+
readiness: 'buildCommandReady',
|
|
33
|
+
publicPrefix,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
// If we got an http error with a response, return buildCommandErrored
|
|
39
|
+
if (axios_1.default.isAxiosError(error) && error.code !== 'ECONNREFUSED' && error.response) {
|
|
40
|
+
return {
|
|
41
|
+
readiness: 'buildCommandErrored',
|
|
42
|
+
error: new Error(`Dev server returned error: ${error.response.status} ${error.response.statusText}`),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Otherwise ignore errors and continue polling in case the dev server is still starting
|
|
46
|
+
}
|
|
47
|
+
}), abortSignal);
|
|
48
|
+
});
|
|
49
|
+
const watchBuildCommandExit = (buildCommand) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
yield (0, events_1.once)(buildCommand, 'close');
|
|
51
|
+
return {
|
|
52
|
+
readiness: 'buildCommandExited',
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
const spawnBuildPluginDevServer = (buildCommand, reporter) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
+
const buildPluginPort = exports.DEFAULT_BUILD_PLUGIN_PORT;
|
|
57
|
+
// Spawn the build command process with the BUILD_PLUGINS_S8S_PORT environment variable.
|
|
58
|
+
const buildCommandProcess = (0, child_process_1.spawn)(buildCommand, [], {
|
|
59
|
+
env: { BUILD_PLUGINS_S8S_PORT: String(buildPluginPort) },
|
|
60
|
+
shell: true,
|
|
61
|
+
});
|
|
62
|
+
// Wait for the build command to either exit, or provide a dev server serving the built assets.
|
|
63
|
+
const controller = new AbortController(); // used to abort the watcher and its http requests
|
|
64
|
+
const buildCommandExited = watchBuildCommandExit(buildCommandProcess);
|
|
65
|
+
const buildCommandReady = watchBuildPluginServerReadiness('http://localhost:' + String(buildPluginPort) + '/_datadog-ci_/build-status', controller.signal);
|
|
66
|
+
const buildCommandReturnValue = yield Promise.race([
|
|
67
|
+
buildCommandReady,
|
|
68
|
+
buildCommandExited,
|
|
69
|
+
]);
|
|
70
|
+
controller.abort();
|
|
71
|
+
if (buildCommandReturnValue === undefined) {
|
|
72
|
+
yield killBuildCommand(buildCommandProcess, buildCommandExited);
|
|
73
|
+
throw new Error('Unexpected state: buildCommandReturnValue is undefined');
|
|
74
|
+
}
|
|
75
|
+
if (buildCommandReturnValue.readiness === 'buildCommandExited') {
|
|
76
|
+
reporter.error(exports.UnconfiguredBuildPluginError.message);
|
|
77
|
+
yield killBuildCommand(buildCommandProcess, buildCommandExited);
|
|
78
|
+
throw exports.UnconfiguredBuildPluginError;
|
|
79
|
+
}
|
|
80
|
+
if (buildCommandReturnValue.readiness === 'buildCommandErrored') {
|
|
81
|
+
reporter.error(buildCommandReturnValue.error.message);
|
|
82
|
+
yield killBuildCommand(buildCommandProcess, buildCommandExited);
|
|
83
|
+
throw buildCommandReturnValue.error;
|
|
84
|
+
}
|
|
85
|
+
const { publicPrefix = '' } = buildCommandReturnValue;
|
|
86
|
+
// Once the build server is ready, return its URL with the advertised public prefix to run the tests against it.
|
|
87
|
+
return {
|
|
88
|
+
devServerUrl: 'http://localhost:' + String(buildPluginPort),
|
|
89
|
+
publicPrefix,
|
|
90
|
+
stop: () => __awaiter(void 0, void 0, void 0, function* () { return killBuildCommand(buildCommandProcess, buildCommandExited); }),
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
exports.spawnBuildPluginDevServer = spawnBuildPluginDevServer;
|
|
94
|
+
const killBuildCommand = (buildCommandProcess, buildCommandExited) => __awaiter(void 0, void 0, void 0, function* () {
|
|
95
|
+
var _a, _b, _c;
|
|
96
|
+
buildCommandProcess.kill();
|
|
97
|
+
(_a = buildCommandProcess.stdin) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
98
|
+
(_b = buildCommandProcess.stdout) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
99
|
+
(_c = buildCommandProcess.stderr) === null || _c === void 0 ? void 0 : _c.destroy();
|
|
100
|
+
yield buildCommandExited;
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=build-and-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-and-test.js","sourceRoot":"","sources":["../../../src/commands/synthetics/build-and-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseCommand, RecursivePartial } from './base-command';
|
|
2
2
|
import { DeployTestsCommandConfig } from './interfaces';
|
|
3
|
-
export declare
|
|
4
|
-
export declare class DeployTestsCommand extends Command {
|
|
3
|
+
export declare class DeployTestsCommand extends BaseCommand {
|
|
5
4
|
static paths: string[][];
|
|
6
5
|
static usage: import("clipanion").Usage;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private appKey;
|
|
10
|
-
private datadogSite;
|
|
6
|
+
protected subdomain: string | undefined;
|
|
7
|
+
protected config: DeployTestsCommandConfig;
|
|
11
8
|
private files;
|
|
12
9
|
private publicIds;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
private fips;
|
|
18
|
-
private fipsIgnoreError;
|
|
19
|
-
private fipsConfig;
|
|
20
|
-
execute(): Promise<1 | undefined>;
|
|
21
|
-
private resolveConfig;
|
|
10
|
+
static getDefaultConfig(): DeployTestsCommandConfig;
|
|
11
|
+
execute(): Promise<0 | 1>;
|
|
12
|
+
protected resolveConfigFromEnv(): RecursivePartial<DeployTestsCommandConfig>;
|
|
13
|
+
protected resolveConfigFromCli(): RecursivePartial<DeployTestsCommandConfig>;
|
|
22
14
|
}
|
|
@@ -12,72 +12,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.DeployTestsCommand =
|
|
15
|
+
exports.DeployTestsCommand = void 0;
|
|
16
16
|
const clipanion_1 = require("clipanion");
|
|
17
|
-
const deep_extend_1 = __importDefault(require("deep-extend"));
|
|
18
17
|
const terminal_link_1 = __importDefault(require("terminal-link"));
|
|
19
|
-
const
|
|
20
|
-
const env_1 = require("../../helpers/env");
|
|
21
|
-
const fips_1 = require("../../helpers/fips");
|
|
22
|
-
const logger_1 = require("../../helpers/logger");
|
|
23
|
-
const utils_1 = require("../../helpers/utils");
|
|
18
|
+
const base_command_1 = require("./base-command");
|
|
24
19
|
const deploy_tests_lib_1 = require("./deploy-tests-lib");
|
|
25
|
-
const errors_1 = require("./errors");
|
|
26
|
-
const default_1 = require("./reporters/default");
|
|
27
|
-
const public_1 = require("./utils/public");
|
|
28
|
-
exports.DEFAULT_DEPLOY_TESTS_COMMAND_CONFIG = {
|
|
29
|
-
apiKey: '',
|
|
30
|
-
appKey: '',
|
|
31
|
-
configPath: 'datadog-ci.json',
|
|
32
|
-
datadogSite: 'datadoghq.com',
|
|
33
|
-
files: [],
|
|
34
|
-
proxy: { protocol: 'http' },
|
|
35
|
-
publicIds: [],
|
|
36
|
-
subdomain: 'app',
|
|
37
|
-
};
|
|
38
20
|
const configurationLink = 'https://docs.datadoghq.com/continuous_testing/cicd_integrations/configuration';
|
|
39
|
-
const $1 = (text) => (0, terminal_link_1.default)(text, `${configurationLink}#global-configuration-file-options`);
|
|
40
21
|
const $2 = (text) => (0, terminal_link_1.default)(text, `${configurationLink}#test-files`);
|
|
41
|
-
class DeployTestsCommand extends
|
|
22
|
+
class DeployTestsCommand extends base_command_1.BaseCommand {
|
|
42
23
|
constructor() {
|
|
43
|
-
var _a, _b;
|
|
44
24
|
super(...arguments);
|
|
45
|
-
this.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.
|
|
25
|
+
this.subdomain = clipanion_1.Option.String('--subdomain', {
|
|
26
|
+
description: 'The name of the custom subdomain set to access your Datadog application. If the URL used to access Datadog is `myorg.datadoghq.com`, the `subdomain` value needs to be set to `myorg`.',
|
|
27
|
+
});
|
|
28
|
+
this.config = DeployTestsCommand.getDefaultConfig();
|
|
49
29
|
this.files = clipanion_1.Option.Array('-f,--files', {
|
|
50
30
|
description: `Glob pattern to detect Synthetic test ${$2('configuration files')}}.`,
|
|
51
31
|
});
|
|
52
32
|
this.publicIds = clipanion_1.Option.Array('-p,--public-id', { description: 'Specify a test to run.' });
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
});
|
|
56
|
-
this.config = JSON.parse(JSON.stringify(exports.DEFAULT_DEPLOY_TESTS_COMMAND_CONFIG)); // Deep copy to avoid mutation
|
|
57
|
-
this.logger = new logger_1.Logger((s) => {
|
|
58
|
-
this.context.stdout.write(s);
|
|
59
|
-
}, logger_1.LogLevel.INFO);
|
|
60
|
-
this.fips = clipanion_1.Option.Boolean('--fips', false);
|
|
61
|
-
this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
|
|
62
|
-
this.fipsConfig = {
|
|
63
|
-
fips: (_a = (0, env_1.toBoolean)(process.env[constants_1.FIPS_ENV_VAR])) !== null && _a !== void 0 ? _a : false,
|
|
64
|
-
fipsIgnoreError: (_b = (0, env_1.toBoolean)(process.env[constants_1.FIPS_IGNORE_ERROR_ENV_VAR])) !== null && _b !== void 0 ? _b : false,
|
|
65
|
-
};
|
|
33
|
+
}
|
|
34
|
+
static getDefaultConfig() {
|
|
35
|
+
return Object.assign(Object.assign({}, super.getDefaultConfig()), { files: [], publicIds: [], subdomain: 'app' });
|
|
66
36
|
}
|
|
67
37
|
execute() {
|
|
68
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.reporter = (0, public_1.getReporter)(reporters);
|
|
72
|
-
try {
|
|
73
|
-
yield this.resolveConfig();
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
if (error instanceof errors_1.CiError) {
|
|
77
|
-
(0, public_1.reportCiError)(error, this.reporter);
|
|
78
|
-
}
|
|
79
|
-
return 1;
|
|
80
|
-
}
|
|
39
|
+
// populate the config
|
|
40
|
+
yield this.setup();
|
|
81
41
|
try {
|
|
82
42
|
yield (0, deploy_tests_lib_1.deployTests)(this.reporter, this.config);
|
|
83
43
|
}
|
|
@@ -85,47 +45,15 @@ class DeployTestsCommand extends clipanion_1.Command {
|
|
|
85
45
|
this.logger.error(`Error: ${error.message}`);
|
|
86
46
|
return 1;
|
|
87
47
|
}
|
|
48
|
+
return 0;
|
|
88
49
|
});
|
|
89
50
|
}
|
|
90
|
-
|
|
91
|
-
var _a, _b
|
|
92
|
-
return
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// Override Config Path with ENV variables
|
|
97
|
-
const overrideConfigPath = (_b = (_a = this.configPath) !== null && _a !== void 0 ? _a : process.env.DATADOG_SYNTHETICS_CONFIG_PATH) !== null && _b !== void 0 ? _b : 'datadog-ci.json';
|
|
98
|
-
this.config = yield (0, utils_1.resolveConfigFromFile)(this.config, {
|
|
99
|
-
configPath: overrideConfigPath,
|
|
100
|
-
defaultConfigPaths: [this.config.configPath],
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
if (this.configPath) {
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
// Override with ENV variables
|
|
109
|
-
this.config = (0, deep_extend_1.default)(this.config, (0, utils_1.removeUndefinedValues)({
|
|
110
|
-
apiKey: process.env.DATADOG_API_KEY,
|
|
111
|
-
appKey: process.env.DATADOG_APP_KEY,
|
|
112
|
-
configPath: process.env.DATADOG_SYNTHETICS_CONFIG_PATH,
|
|
113
|
-
datadogSite: process.env.DATADOG_SITE,
|
|
114
|
-
files: (_c = process.env.DATADOG_SYNTHETICS_FILES) === null || _c === void 0 ? void 0 : _c.split(';'),
|
|
115
|
-
publicIds: (_d = process.env.DATADOG_SYNTHETICS_PUBLIC_IDS) === null || _d === void 0 ? void 0 : _d.split(';'),
|
|
116
|
-
subdomain: process.env.DATADOG_SUBDOMAIN,
|
|
117
|
-
}));
|
|
118
|
-
// Override with CLI parameters
|
|
119
|
-
this.config = (0, deep_extend_1.default)(this.config, (0, utils_1.removeUndefinedValues)({
|
|
120
|
-
apiKey: this.apiKey,
|
|
121
|
-
appKey: this.appKey,
|
|
122
|
-
configPath: this.configPath,
|
|
123
|
-
datadogSite: this.datadogSite,
|
|
124
|
-
files: this.files,
|
|
125
|
-
publicIds: this.publicIds,
|
|
126
|
-
subdomain: this.subdomain,
|
|
127
|
-
}));
|
|
128
|
-
});
|
|
51
|
+
resolveConfigFromEnv() {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
return Object.assign(Object.assign({}, super.resolveConfigFromEnv()), { files: (_a = process.env.DATADOG_SYNTHETICS_FILES) === null || _a === void 0 ? void 0 : _a.split(';'), publicIds: (_b = process.env.DATADOG_SYNTHETICS_PUBLIC_IDS) === null || _b === void 0 ? void 0 : _b.split(';'), subdomain: process.env.DATADOG_SUBDOMAIN });
|
|
54
|
+
}
|
|
55
|
+
resolveConfigFromCli() {
|
|
56
|
+
return Object.assign(Object.assign({}, super.resolveConfigFromCli()), { files: this.files, publicIds: this.publicIds, subdomain: this.subdomain });
|
|
129
57
|
}
|
|
130
58
|
}
|
|
131
59
|
exports.DeployTestsCommand = DeployTestsCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-tests-command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/deploy-tests-command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"deploy-tests-command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/deploy-tests-command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAyC;AACzC,kEAAwC;AAExC,iDAA4D;AAC5D,yDAA8C;AAG9C,MAAM,iBAAiB,GAAG,+EAA+E,CAAA;AAEzG,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAA,uBAAY,EAAC,IAAI,EAAE,GAAG,iBAAiB,aAAa,CAAC,CAAA;AAElF,MAAa,kBAAmB,SAAQ,0BAAW;IAAnD;;QAqBY,cAAS,GAAG,kBAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YACjD,WAAW,EACT,wLAAwL;SAC3L,CAAC,CAAA;QAEQ,WAAM,GAA6B,kBAAkB,CAAC,gBAAgB,EAAE,CAAA;QAE1E,UAAK,GAAG,kBAAM,CAAC,KAAK,CAAC,YAAY,EAAE;YACzC,WAAW,EAAE,yCAAyC,EAAE,CAAC,qBAAqB,CAAC,IAAI;SACpF,CAAC,CAAA;QACM,cAAS,GAAG,kBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAE,wBAAwB,EAAC,CAAC,CAAA;IA2C7F,CAAC;IAzCQ,MAAM,CAAC,gBAAgB;QAC5B,uCACK,KAAK,CAAC,gBAAgB,EAAE,KAC3B,KAAK,EAAE,EAAE,EACT,SAAS,EAAE,EAAE,EACb,SAAS,EAAE,KAAK,IACjB;IACH,CAAC;IAEY,OAAO;;YAClB,sBAAsB;YACtB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAElB,IAAI;gBACF,MAAM,IAAA,8BAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;aAC9C;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAE5C,OAAO,CAAC,CAAA;aACT;YAED,OAAO,CAAC,CAAA;QACV,CAAC;KAAA;IAES,oBAAoB;;QAC5B,uCACK,KAAK,CAAC,oBAAoB,EAAE,KAC/B,KAAK,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,0CAAE,KAAK,CAAC,GAAG,CAAC,EACvD,SAAS,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,0CAAE,KAAK,CAAC,GAAG,CAAC,EAChE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IACzC;IACH,CAAC;IAES,oBAAoB;QAC5B,uCACK,KAAK,CAAC,oBAAoB,EAAE,KAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAC1B;IACH,CAAC;;AAzEH,gDA0EC;AAzEe,wBAAK,GAAG,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,AAAnC,CAAmC;AAExC,wBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,oEAAoE;IACjF,OAAO,EAAE;;KAER;IACD,QAAQ,EAAE;QACR;YACE,yDAAyD;YACzD,oFAAoF;SACrF;QACD;YACE,mCAAmC;YACnC,gHAAgH;SACjH;KACF;CACF,CAAC,AAhBiB,CAgBjB"}
|
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseCommand, RecursivePartial } from './base-command';
|
|
2
2
|
import { ImportTestsCommandConfig } from './interfaces';
|
|
3
|
-
export declare
|
|
4
|
-
export declare class ImportTestsCommand extends Command {
|
|
3
|
+
export declare class ImportTestsCommand extends BaseCommand {
|
|
5
4
|
static paths: string[][];
|
|
6
5
|
static usage: import("clipanion").Usage;
|
|
7
|
-
|
|
8
|
-
private appKey;
|
|
9
|
-
private configPath;
|
|
10
|
-
private datadogSite;
|
|
6
|
+
protected config: ImportTestsCommandConfig;
|
|
11
7
|
private files;
|
|
12
8
|
private publicIds;
|
|
13
9
|
private testSearchQuery;
|
|
14
|
-
|
|
15
|
-
private config;
|
|
16
|
-
private logger;
|
|
17
|
-
private fips;
|
|
18
|
-
private fipsIgnoreError;
|
|
19
|
-
private fipsConfig;
|
|
10
|
+
static getDefaultConfig(): ImportTestsCommandConfig;
|
|
20
11
|
execute(): Promise<1 | undefined>;
|
|
21
|
-
|
|
12
|
+
protected resolveConfigFromEnv(): RecursivePartial<ImportTestsCommandConfig>;
|
|
13
|
+
protected resolveConfigFromCli(): RecursivePartial<ImportTestsCommandConfig>;
|
|
22
14
|
}
|
|
@@ -12,39 +12,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ImportTestsCommand =
|
|
15
|
+
exports.ImportTestsCommand = void 0;
|
|
16
16
|
const clipanion_1 = require("clipanion");
|
|
17
|
-
const deep_extend_1 = __importDefault(require("deep-extend"));
|
|
18
17
|
const terminal_link_1 = __importDefault(require("terminal-link"));
|
|
19
|
-
const
|
|
20
|
-
const env_1 = require("../../helpers/env");
|
|
21
|
-
const fips_1 = require("../../helpers/fips");
|
|
22
|
-
const logger_1 = require("../../helpers/logger");
|
|
23
|
-
const utils_1 = require("../../helpers/utils");
|
|
18
|
+
const base_command_1 = require("./base-command");
|
|
24
19
|
const import_tests_lib_1 = require("./import-tests-lib");
|
|
25
|
-
const default_1 = require("./reporters/default");
|
|
26
|
-
const public_1 = require("./utils/public");
|
|
27
|
-
exports.DEFAULT_IMPORT_TESTS_COMMAND_CONFIG = {
|
|
28
|
-
apiKey: '',
|
|
29
|
-
appKey: '',
|
|
30
|
-
configPath: 'datadog-ci.json',
|
|
31
|
-
datadogSite: 'datadoghq.com',
|
|
32
|
-
files: [],
|
|
33
|
-
proxy: { protocol: 'http' },
|
|
34
|
-
publicIds: [],
|
|
35
|
-
testSearchQuery: '',
|
|
36
|
-
};
|
|
37
20
|
const configurationLink = 'https://docs.datadoghq.com/continuous_testing/cicd_integrations/configuration';
|
|
38
|
-
const $1 = (text) => (0, terminal_link_1.default)(text, `${configurationLink}#global-configuration-file-options`);
|
|
39
21
|
const $2 = (text) => (0, terminal_link_1.default)(text, `${configurationLink}#test-files`);
|
|
40
|
-
class ImportTestsCommand extends
|
|
22
|
+
class ImportTestsCommand extends base_command_1.BaseCommand {
|
|
41
23
|
constructor() {
|
|
42
|
-
var _a, _b;
|
|
43
24
|
super(...arguments);
|
|
44
|
-
this.
|
|
45
|
-
this.appKey = clipanion_1.Option.String('--appKey', { description: 'The application key used to query the Datadog API.' });
|
|
46
|
-
this.configPath = clipanion_1.Option.String('--config', { description: `Pass a path to a ${$1('global configuration file')}.` });
|
|
47
|
-
this.datadogSite = clipanion_1.Option.String('--datadogSite', { description: 'The Datadog instance to which request is sent.' });
|
|
25
|
+
this.config = ImportTestsCommand.getDefaultConfig();
|
|
48
26
|
this.files = clipanion_1.Option.Array('-f,--files', {
|
|
49
27
|
description: `Glob pattern to detect Synthetic test files ${$2('configuration files')}} and write to this file.`,
|
|
50
28
|
});
|
|
@@ -52,29 +30,14 @@ class ImportTestsCommand extends clipanion_1.Command {
|
|
|
52
30
|
this.testSearchQuery = clipanion_1.Option.String('-s,--search', {
|
|
53
31
|
description: 'Pass a query to select which Synthetic tests to run.',
|
|
54
32
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}, logger_1.LogLevel.INFO);
|
|
59
|
-
this.fips = clipanion_1.Option.Boolean('--fips', false);
|
|
60
|
-
this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
|
|
61
|
-
this.fipsConfig = {
|
|
62
|
-
fips: (_a = (0, env_1.toBoolean)(process.env[constants_1.FIPS_ENV_VAR])) !== null && _a !== void 0 ? _a : false,
|
|
63
|
-
fipsIgnoreError: (_b = (0, env_1.toBoolean)(process.env[constants_1.FIPS_IGNORE_ERROR_ENV_VAR])) !== null && _b !== void 0 ? _b : false,
|
|
64
|
-
};
|
|
33
|
+
}
|
|
34
|
+
static getDefaultConfig() {
|
|
35
|
+
return Object.assign(Object.assign({}, super.getDefaultConfig()), { files: [], publicIds: [], testSearchQuery: '' });
|
|
65
36
|
}
|
|
66
37
|
execute() {
|
|
67
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
|
|
69
|
-
this.
|
|
70
|
-
(0, fips_1.enableFips)(this.fips || this.fipsConfig.fips, this.fipsIgnoreError || this.fipsConfig.fipsIgnoreError);
|
|
71
|
-
try {
|
|
72
|
-
yield this.resolveConfig();
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
this.logger.error(`Error: invalid config`);
|
|
76
|
-
return 1;
|
|
77
|
-
}
|
|
39
|
+
// populate the config
|
|
40
|
+
yield this.setup();
|
|
78
41
|
try {
|
|
79
42
|
yield (0, import_tests_lib_1.importTests)(this.reporter, this.config);
|
|
80
43
|
}
|
|
@@ -84,43 +47,12 @@ class ImportTestsCommand extends clipanion_1.Command {
|
|
|
84
47
|
}
|
|
85
48
|
});
|
|
86
49
|
}
|
|
87
|
-
|
|
88
|
-
var _a, _b
|
|
89
|
-
return
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const overrideConfigPath = (_b = (_a = this.configPath) !== null && _a !== void 0 ? _a : process.env.DATADOG_SYNTHETICS_CONFIG_PATH) !== null && _b !== void 0 ? _b : 'datadog-ci.json';
|
|
94
|
-
this.config = yield (0, utils_1.resolveConfigFromFile)(this.config, {
|
|
95
|
-
configPath: overrideConfigPath,
|
|
96
|
-
defaultConfigPaths: [this.config.configPath],
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
if (this.configPath) {
|
|
101
|
-
throw error;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
this.config = (0, deep_extend_1.default)(this.config, (0, utils_1.removeUndefinedValues)({
|
|
105
|
-
apiKey: process.env.DATADOG_API_KEY,
|
|
106
|
-
appKey: process.env.DATADOG_APP_KEY,
|
|
107
|
-
configPath: process.env.DATADOG_SYNTHETICS_CONFIG_PATH,
|
|
108
|
-
datadogSite: process.env.DATADOG_SITE,
|
|
109
|
-
files: (_c = process.env.DATADOG_SYNTHETICS_FILES) === null || _c === void 0 ? void 0 : _c.split(';'),
|
|
110
|
-
publicIds: (_d = process.env.DATADOG_SYNTHETICS_PUBLIC_IDS) === null || _d === void 0 ? void 0 : _d.split(';'),
|
|
111
|
-
testSearchQuery: process.env.DATADOG_SYNTHETICS_TEST_SEARCH_QUERY,
|
|
112
|
-
}));
|
|
113
|
-
// Override with CLI parameters
|
|
114
|
-
this.config = (0, deep_extend_1.default)(this.config, (0, utils_1.removeUndefinedValues)({
|
|
115
|
-
apiKey: this.apiKey,
|
|
116
|
-
appKey: this.appKey,
|
|
117
|
-
configPath: this.configPath,
|
|
118
|
-
datadogSite: this.datadogSite,
|
|
119
|
-
files: this.files,
|
|
120
|
-
publicIds: this.publicIds,
|
|
121
|
-
testSearchQuery: this.testSearchQuery,
|
|
122
|
-
}));
|
|
123
|
-
});
|
|
50
|
+
resolveConfigFromEnv() {
|
|
51
|
+
var _a, _b;
|
|
52
|
+
return Object.assign(Object.assign({}, super.resolveConfigFromEnv()), { files: (_a = process.env.DATADOG_SYNTHETICS_FILES) === null || _a === void 0 ? void 0 : _a.split(';'), publicIds: (_b = process.env.DATADOG_SYNTHETICS_PUBLIC_IDS) === null || _b === void 0 ? void 0 : _b.split(';'), testSearchQuery: process.env.DATADOG_SYNTHETICS_TEST_SEARCH_QUERY });
|
|
53
|
+
}
|
|
54
|
+
resolveConfigFromCli() {
|
|
55
|
+
return Object.assign(Object.assign({}, super.resolveConfigFromCli()), { files: this.files, publicIds: this.publicIds, testSearchQuery: this.testSearchQuery });
|
|
124
56
|
}
|
|
125
57
|
}
|
|
126
58
|
exports.ImportTestsCommand = ImportTestsCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-tests-command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/import-tests-command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"import-tests-command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/import-tests-command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAyC;AACzC,kEAAwC;AAExC,iDAA4D;AAC5D,yDAA8C;AAG9C,MAAM,iBAAiB,GAAG,+EAA+E,CAAA;AAEzG,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAA,uBAAY,EAAC,IAAI,EAAE,GAAG,iBAAiB,aAAa,CAAC,CAAA;AAElF,MAAa,kBAAmB,SAAQ,0BAAW;IAAnD;;QAkBY,WAAM,GAA6B,kBAAkB,CAAC,gBAAgB,EAAE,CAAA;QAE1E,UAAK,GAAG,kBAAM,CAAC,KAAK,CAAC,YAAY,EAAE;YACzC,WAAW,EAAE,+CAA+C,EAAE,CAAC,qBAAqB,CAAC,2BAA2B;SACjH,CAAC,CAAA;QACM,cAAS,GAAG,kBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAE,2BAA2B,EAAC,CAAC,CAAA;QACtF,oBAAe,GAAG,kBAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YACrD,WAAW,EAAE,sDAAsD;SACpE,CAAC,CAAA;IAyCJ,CAAC;IAvCQ,MAAM,CAAC,gBAAgB;QAC5B,uCACK,KAAK,CAAC,gBAAgB,EAAE,KAC3B,KAAK,EAAE,EAAE,EACT,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,EAAE,IACpB;IACH,CAAC;IAEY,OAAO;;YAClB,sBAAsB;YACtB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAElB,IAAI;gBACF,MAAM,IAAA,8BAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;aAC9C;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAE5C,OAAO,CAAC,CAAA;aACT;QACH,CAAC;KAAA;IAES,oBAAoB;;QAC5B,uCACK,KAAK,CAAC,oBAAoB,EAAE,KAC/B,KAAK,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,0CAAE,KAAK,CAAC,GAAG,CAAC,EACvD,SAAS,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,0CAAE,KAAK,CAAC,GAAG,CAAC,EAChE,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAClE;IACH,CAAC;IAES,oBAAoB;QAC5B,uCACK,KAAK,CAAC,oBAAoB,EAAE,KAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,eAAe,EAAE,IAAI,CAAC,eAAe,IACtC;IACH,CAAC;;AAlEH,gDAmEC;AAlEe,wBAAK,GAAG,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,AAAnC,CAAmC;AAExC,wBAAK,GAAG,mBAAO,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,6FAA6F;IAC1G,OAAO,EAAE;;KAER;IACD,QAAQ,EAAE;QACR;YACE,0CAA0C;YAC1C,oFAAoF;SACrF;QACD,CAAC,mCAAmC,EAAE,iEAAiE,CAAC;KACzG;CACF,CAAC,AAbiB,CAajB"}
|
|
@@ -3,5 +3,5 @@ export * from './interfaces';
|
|
|
3
3
|
export { DefaultReporter } from './reporters/default';
|
|
4
4
|
export { JUnitReporter } from './reporters/junit';
|
|
5
5
|
export { executeTests, execute } from './run-tests-lib';
|
|
6
|
-
export { DEFAULT_COMMAND_CONFIG } from './run-tests-command';
|
|
7
6
|
export * as utils from './utils/public';
|
|
7
|
+
export declare const DEFAULT_COMMAND_CONFIG: import("./interfaces").RunTestsCommandConfig;
|
|
@@ -26,7 +26,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.DEFAULT_COMMAND_CONFIG = exports.utils = exports.execute = exports.executeTests = exports.JUnitReporter = exports.DefaultReporter = exports.CriticalError = exports.CiError = void 0;
|
|
30
|
+
const run_tests_lib_1 = require("./run-tests-lib");
|
|
30
31
|
var errors_1 = require("./errors");
|
|
31
32
|
Object.defineProperty(exports, "CiError", { enumerable: true, get: function () { return errors_1.CiError; } });
|
|
32
33
|
Object.defineProperty(exports, "CriticalError", { enumerable: true, get: function () { return errors_1.CriticalError; } });
|
|
@@ -35,10 +36,9 @@ var default_1 = require("./reporters/default");
|
|
|
35
36
|
Object.defineProperty(exports, "DefaultReporter", { enumerable: true, get: function () { return default_1.DefaultReporter; } });
|
|
36
37
|
var junit_1 = require("./reporters/junit");
|
|
37
38
|
Object.defineProperty(exports, "JUnitReporter", { enumerable: true, get: function () { return junit_1.JUnitReporter; } });
|
|
38
|
-
var
|
|
39
|
-
Object.defineProperty(exports, "executeTests", { enumerable: true, get: function () { return
|
|
40
|
-
Object.defineProperty(exports, "execute", { enumerable: true, get: function () { return
|
|
41
|
-
var run_tests_command_1 = require("./run-tests-command");
|
|
42
|
-
Object.defineProperty(exports, "DEFAULT_COMMAND_CONFIG", { enumerable: true, get: function () { return run_tests_command_1.DEFAULT_COMMAND_CONFIG; } });
|
|
39
|
+
var run_tests_lib_2 = require("./run-tests-lib");
|
|
40
|
+
Object.defineProperty(exports, "executeTests", { enumerable: true, get: function () { return run_tests_lib_2.executeTests; } });
|
|
41
|
+
Object.defineProperty(exports, "execute", { enumerable: true, get: function () { return run_tests_lib_2.execute; } });
|
|
43
42
|
exports.utils = __importStar(require("./utils/public"));
|
|
43
|
+
exports.DEFAULT_COMMAND_CONFIG = (0, run_tests_lib_1.getDefaultConfig)();
|
|
44
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/synthetics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+C;AAAvC,iGAAA,OAAO,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC9B,+CAA4B;AAC5B,+CAAmD;AAA3C,0GAAA,eAAe,OAAA;AACvB,2CAA+C;AAAvC,sGAAA,aAAa,OAAA;AACrB,iDAAqD;AAA7C,6GAAA,YAAY,OAAA;AAAE,wGAAA,OAAO,OAAA;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/synthetics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAgD;AAEhD,mCAA+C;AAAvC,iGAAA,OAAO,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC9B,+CAA4B;AAC5B,+CAAmD;AAA3C,0GAAA,eAAe,OAAA;AACvB,2CAA+C;AAAvC,sGAAA,aAAa,OAAA;AACrB,iDAAqD;AAA7C,6GAAA,YAAY,OAAA;AAAE,wGAAA,OAAO,OAAA;AAC7B,wDAAuC;AAE1B,QAAA,sBAAsB,GAAG,IAAA,gCAAgB,GAAE,CAAA"}
|
|
@@ -473,11 +473,14 @@ export interface APIHelperConfig {
|
|
|
473
473
|
datadogSite: string;
|
|
474
474
|
proxy: ProxyConfiguration;
|
|
475
475
|
}
|
|
476
|
-
export interface
|
|
476
|
+
export interface DatadogCIConfig extends APIHelperConfig {
|
|
477
|
+
configPath: string;
|
|
478
|
+
}
|
|
479
|
+
export interface SyntheticsCIConfig extends DatadogCIConfig {
|
|
477
480
|
}
|
|
478
481
|
export interface RunTestsCommandConfig extends SyntheticsCIConfig {
|
|
479
482
|
batchTimeout?: number;
|
|
480
|
-
|
|
483
|
+
buildCommand?: string;
|
|
481
484
|
defaultTestOverrides?: UserConfigOverride;
|
|
482
485
|
failOnCriticalErrors: boolean;
|
|
483
486
|
failOnMissingTests: boolean;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import { Result, ImportTestsCommandConfig, MainReporter } from './interfaces';
|
|
2
2
|
export declare const updateLTDMultiLocators: (reporter: MainReporter, config: ImportTestsCommandConfig, results: Result[]) => Promise<void>;
|
|
3
|
-
export declare const promptUser: (message: string) => Promise<boolean>;
|
|
@@ -8,13 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
12
|
+
exports.updateLTDMultiLocators = void 0;
|
|
16
13
|
const promises_1 = require("fs/promises");
|
|
17
|
-
const
|
|
14
|
+
const ci_1 = require("../../helpers/ci");
|
|
15
|
+
const prompt_1 = require("../../helpers/prompt");
|
|
18
16
|
const local_test_definition_1 = require("./local-test-definition");
|
|
19
17
|
const constants_1 = require("./reporters/constants");
|
|
20
18
|
const test_1 = require("./test");
|
|
@@ -26,7 +24,10 @@ const updateLTDMultiLocators = (reporter, config, results) => __awaiter(void 0,
|
|
|
26
24
|
if (!hasMLUpdates) {
|
|
27
25
|
return reporter.log('No MultiLocator updates found. No changes will be made.\n');
|
|
28
26
|
}
|
|
29
|
-
|
|
27
|
+
if (!(0, ci_1.isInteractive)()) {
|
|
28
|
+
return reporter.log('MultiLocator updates found, but cannot apply them in non-interactive mode.\n');
|
|
29
|
+
}
|
|
30
|
+
const userConfirmed = yield (0, prompt_1.requestConfirmation)('MultiLocator updates found. Do you want to apply them to your local test definition?', false);
|
|
30
31
|
if (!userConfirmed) {
|
|
31
32
|
return reporter.log('\nMultiLocator updates aborted by user.\n');
|
|
32
33
|
}
|
|
@@ -66,17 +67,6 @@ const getMultiLocatorsFromResults = (results) => {
|
|
|
66
67
|
}
|
|
67
68
|
return multiLocatorMap;
|
|
68
69
|
};
|
|
69
|
-
const promptUser = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
|
-
const question = {
|
|
71
|
-
type: 'confirm',
|
|
72
|
-
name: 'confirm',
|
|
73
|
-
message,
|
|
74
|
-
default: false,
|
|
75
|
-
};
|
|
76
|
-
const { confirm } = yield inquirer_1.default.prompt([question]);
|
|
77
|
-
return confirm;
|
|
78
|
-
});
|
|
79
|
-
exports.promptUser = promptUser;
|
|
80
70
|
const overwriteMultiLocatorsInTestConfig = (multiLocatorMap, testConfigFromFile) => {
|
|
81
71
|
for (const publicId of Object.keys(multiLocatorMap)) {
|
|
82
72
|
const test = (0, local_test_definition_1.findUniqueLocalTestDefinition)(testConfigFromFile, publicId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multilocator.js","sourceRoot":"","sources":["../../../src/commands/synthetics/multilocator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multilocator.js","sourceRoot":"","sources":["../../../src/commands/synthetics/multilocator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAqC;AAErC,yCAA8C;AAC9C,iDAAwD;AAGxD,mEAAqE;AACrE,qDAA2C;AAC3C,iCAAqC;AACrC,+CAAwE;AAIjE,MAAM,sBAAsB,GAAG,CACpC,QAAsB,EACtB,MAAgC,EAChC,OAAiB,EACjB,EAAE;IACF,QAAQ,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA,CAAC,uBAAuB;IAC9E,MAAM,eAAe,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAA;IAE5D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAA;IAEzG,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,QAAQ,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;KACjF;IAED,IAAI,CAAC,IAAA,kBAAa,GAAE,EAAE;QACpB,OAAO,QAAQ,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAA;KACpG;IAED,MAAM,aAAa,GAAG,MAAM,IAAA,4BAAmB,EAC7C,sFAAsF,EACtF,KAAK,CACN,CAAA;IACD,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;KACjE;IAED,QAAQ,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACtD,MAAM,kBAAkB,GAAe;QACrC,KAAK,EAAE,MAAM,IAAA,qBAAc,EAAC,MAAM,EAAE,QAAQ,CAAC;KAC9C,CAAA;IAED,MAAM,UAAU,GAAG,kCAAkC,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;IAE1F,IAAI;QACF,MAAM,IAAA,oBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAClF,QAAQ,CAAC,GAAG,CAAC,GAAG,iBAAK,CAAC,OAAO,2DAA2D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;KAC7G;IAAC,OAAO,KAAK,EAAE;QACd,QAAQ,CAAC,KAAK,CAAC,GAAG,iBAAK,CAAC,MAAM,2BAA2B,KAAK,IAAI,CAAC,CAAA;KACpE;AACH,CAAC,CAAA,CAAA;AAvCY,QAAA,sBAAsB,0BAuClC;AAED,MAAM,2BAA2B,GAAG,CAAC,OAAiB,EAAmB,EAAE;;IACzE,MAAM,eAAe,GAAoB,EAAE,CAAA;IAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAA;QACtC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,SAAQ;SACT;QAED,MAAM,aAAa,GAAiC,EAAE,CAAA;QAEtD,IAAI,IAAA,2BAAgB,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAA,gCAAqB,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACrF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,+BAA+B;YAChF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,kBAAkB,0CAAE,YAAY,CAAA;gBAC1D,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;aACjC;SACF;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE;YAChD,eAAe,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAA;SAC1C;KACF;IAED,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,kCAAkC,GAAG,CACzC,eAAgC,EAChC,kBAA8B,EAClB,EAAE;IACd,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;QACnD,MAAM,IAAI,GAAG,IAAA,qDAA6B,EAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QAExE,IAAI,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAA;YAC5C,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;gBACzD,IAAI,YAAY,EAAE;oBAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;qBACzB;oBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAA;iBAChD;aACF;SACF;KACF;IAED,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA"}
|