@datadog/datadog-ci 5.2.0 → 5.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/dist/commands/cli.d.ts +0 -2
- package/dist/commands/cli.js +20 -24
- package/dist/commands/cli.js.map +1 -1
- package/package.json +10 -13
- package/dist/commands/coverage/api.d.ts +0 -8
- package/dist/commands/coverage/api.js +0 -73
- package/dist/commands/coverage/api.js.map +0 -1
- package/dist/commands/coverage/cli.d.ts +0 -2
- package/dist/commands/coverage/cli.js +0 -6
- package/dist/commands/coverage/cli.js.map +0 -1
- package/dist/commands/coverage/interfaces.d.ts +0 -23
- package/dist/commands/coverage/interfaces.js +0 -3
- package/dist/commands/coverage/interfaces.js.map +0 -1
- package/dist/commands/coverage/renderer.d.ts +0 -13
- package/dist/commands/coverage/renderer.js +0 -88
- package/dist/commands/coverage/renderer.js.map +0 -1
- package/dist/commands/coverage/upload.d.ts +0 -36
- package/dist/commands/coverage/upload.js +0 -391
- package/dist/commands/coverage/upload.js.map +0 -1
- package/dist/commands/coverage/utils.d.ts +0 -15
- package/dist/commands/coverage/utils.js +0 -240
- package/dist/commands/coverage/utils.js.map +0 -1
- package/dist/commands/junit/api.d.ts +0 -9
- package/dist/commands/junit/api.js +0 -76
- package/dist/commands/junit/api.js.map +0 -1
- package/dist/commands/junit/cli.d.ts +0 -2
- package/dist/commands/junit/cli.js +0 -6
- package/dist/commands/junit/cli.js.map +0 -1
- package/dist/commands/junit/interfaces.d.ts +0 -16
- package/dist/commands/junit/interfaces.js +0 -3
- package/dist/commands/junit/interfaces.js.map +0 -1
- package/dist/commands/junit/renderer.d.ts +0 -12
- package/dist/commands/junit/renderer.js +0 -82
- package/dist/commands/junit/renderer.js.map +0 -1
- package/dist/commands/junit/upload.d.ts +0 -37
- package/dist/commands/junit/upload.js +0 -370
- package/dist/commands/junit/upload.js.map +0 -1
- package/dist/commands/junit/utils.d.ts +0 -3
- package/dist/commands/junit/utils.js +0 -26
- package/dist/commands/junit/utils.js.map +0 -1
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.JunitUploadCommand = void 0;
|
|
39
|
-
const fs_1 = __importDefault(require("fs"));
|
|
40
|
-
const os_1 = __importDefault(require("os"));
|
|
41
|
-
const datadog_ci_base_1 = require("@datadog/datadog-ci-base");
|
|
42
|
-
const git_1 = require("@datadog/datadog-ci-base/commands/git-metadata/git");
|
|
43
|
-
const gitdb_1 = require("@datadog/datadog-ci-base/commands/git-metadata/gitdb");
|
|
44
|
-
const library_1 = require("@datadog/datadog-ci-base/commands/git-metadata/library");
|
|
45
|
-
const constants_1 = require("@datadog/datadog-ci-base/constants");
|
|
46
|
-
const ci_1 = require("@datadog/datadog-ci-base/helpers/ci");
|
|
47
|
-
const concurrency_1 = require("@datadog/datadog-ci-base/helpers/concurrency");
|
|
48
|
-
const env_1 = require("@datadog/datadog-ci-base/helpers/env");
|
|
49
|
-
const file_finder_1 = require("@datadog/datadog-ci-base/helpers/file-finder");
|
|
50
|
-
const fips_1 = require("@datadog/datadog-ci-base/helpers/fips");
|
|
51
|
-
const format_git_span_data_1 = require("@datadog/datadog-ci-base/helpers/git/format-git-span-data");
|
|
52
|
-
const glob_1 = require("@datadog/datadog-ci-base/helpers/glob");
|
|
53
|
-
const id_1 = __importDefault(require("@datadog/datadog-ci-base/helpers/id"));
|
|
54
|
-
const logger_1 = require("@datadog/datadog-ci-base/helpers/logger");
|
|
55
|
-
const retry_1 = require("@datadog/datadog-ci-base/helpers/retry");
|
|
56
|
-
const tags_1 = require("@datadog/datadog-ci-base/helpers/tags");
|
|
57
|
-
const user_provided_git_1 = require("@datadog/datadog-ci-base/helpers/user-provided-git");
|
|
58
|
-
const utils_1 = require("@datadog/datadog-ci-base/helpers/utils");
|
|
59
|
-
const validation = __importStar(require("@datadog/datadog-ci-base/helpers/validation"));
|
|
60
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
61
|
-
const clipanion_1 = require("clipanion");
|
|
62
|
-
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
63
|
-
const t = __importStar(require("typanion"));
|
|
64
|
-
const upath_1 = __importDefault(require("upath"));
|
|
65
|
-
const api_1 = require("./api");
|
|
66
|
-
const renderer_1 = require("./renderer");
|
|
67
|
-
const TRACE_ID_HTTP_HEADER = 'x-datadog-trace-id';
|
|
68
|
-
const PARENT_ID_HTTP_HEADER = 'x-datadog-parent-id';
|
|
69
|
-
const errorCodesStopUpload = [400, 403];
|
|
70
|
-
const isJunitXmlReport = (file) => {
|
|
71
|
-
if (upath_1.default.extname(file) !== '.xml') {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
const filename = upath_1.default.basename(file);
|
|
75
|
-
return (filename.includes('junit') || // *junit*.xml
|
|
76
|
-
filename.includes('test') || // *test*.xml
|
|
77
|
-
filename.includes('TEST-') // *TEST-*.xml
|
|
78
|
-
);
|
|
79
|
-
};
|
|
80
|
-
const validateXml = (xmlFilePath) => {
|
|
81
|
-
const xmlFileContentString = String(fs_1.default.readFileSync(xmlFilePath));
|
|
82
|
-
const validationOutput = fast_xml_parser_1.XMLValidator.validate(xmlFileContentString);
|
|
83
|
-
if (validationOutput !== true) {
|
|
84
|
-
return validationOutput.err.msg;
|
|
85
|
-
}
|
|
86
|
-
const xmlParser = new fast_xml_parser_1.XMLParser();
|
|
87
|
-
const xmlFileJSON = xmlParser.parse(String(xmlFileContentString));
|
|
88
|
-
if (!('testsuites' in xmlFileJSON) && !('testsuite' in xmlFileJSON)) {
|
|
89
|
-
return 'Neither <testsuites> nor <testsuite> are the root tag.';
|
|
90
|
-
}
|
|
91
|
-
else if (!xmlFileJSON.testsuite && !xmlFileJSON.testsuites) {
|
|
92
|
-
return 'The junit report file is empty, there are no <testcase> elements.';
|
|
93
|
-
}
|
|
94
|
-
return undefined;
|
|
95
|
-
};
|
|
96
|
-
class JunitUploadCommand extends datadog_ci_base_1.BaseCommand {
|
|
97
|
-
constructor() {
|
|
98
|
-
var _a, _b;
|
|
99
|
-
super(...arguments);
|
|
100
|
-
this.basePaths = clipanion_1.Option.Rest({ required: 1 });
|
|
101
|
-
this.verbose = clipanion_1.Option.Boolean('--verbose', false);
|
|
102
|
-
this.dryRun = clipanion_1.Option.Boolean('--dry-run', false);
|
|
103
|
-
this.env = clipanion_1.Option.String('--env');
|
|
104
|
-
this.logs = clipanion_1.Option.String('--logs', 'false', {
|
|
105
|
-
env: 'DD_CIVISIBILITY_LOGS_ENABLED',
|
|
106
|
-
tolerateBoolean: true,
|
|
107
|
-
validator: t.isBoolean(),
|
|
108
|
-
});
|
|
109
|
-
this.maxConcurrency = clipanion_1.Option.String('--max-concurrency', '20', { validator: validation.isInteger() });
|
|
110
|
-
this.measures = clipanion_1.Option.Array('--measures');
|
|
111
|
-
this.service = clipanion_1.Option.String('--service', { env: 'DD_SERVICE' });
|
|
112
|
-
this.tags = clipanion_1.Option.Array('--tags');
|
|
113
|
-
this.reportTags = clipanion_1.Option.Array('--report-tags');
|
|
114
|
-
this.reportMeasures = clipanion_1.Option.Array('--report-measures');
|
|
115
|
-
this.rawXPathTags = clipanion_1.Option.Array('--xpath-tag');
|
|
116
|
-
this.gitRepositoryURL = clipanion_1.Option.String('--git-repository-url');
|
|
117
|
-
this.skipGitMetadataUpload = clipanion_1.Option.String('--skip-git-metadata-upload', 'false', {
|
|
118
|
-
validator: t.isBoolean(),
|
|
119
|
-
tolerateBoolean: true,
|
|
120
|
-
});
|
|
121
|
-
this.fips = clipanion_1.Option.Boolean('--fips', false);
|
|
122
|
-
this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
|
|
123
|
-
this.automaticReportsDiscovery = clipanion_1.Option.String('--auto-discovery', 'false', {
|
|
124
|
-
validator: t.isBoolean(),
|
|
125
|
-
tolerateBoolean: true,
|
|
126
|
-
});
|
|
127
|
-
this.ignoredPaths = clipanion_1.Option.String('--ignored-paths');
|
|
128
|
-
this.config = {
|
|
129
|
-
apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
|
|
130
|
-
env: process.env.DD_ENV,
|
|
131
|
-
envVarTags: process.env.DD_TAGS,
|
|
132
|
-
envVarMetrics: process.env.DD_METRICS,
|
|
133
|
-
envVarMeasures: process.env.DD_MEASURES,
|
|
134
|
-
fips: (_a = (0, env_1.toBoolean)(process.env[constants_1.FIPS_ENV_VAR])) !== null && _a !== void 0 ? _a : false,
|
|
135
|
-
fipsIgnoreError: (_b = (0, env_1.toBoolean)(process.env[constants_1.FIPS_IGNORE_ERROR_ENV_VAR])) !== null && _b !== void 0 ? _b : false,
|
|
136
|
-
};
|
|
137
|
-
this.logger = new logger_1.Logger((s) => this.context.stdout.write(s), logger_1.LogLevel.INFO);
|
|
138
|
-
}
|
|
139
|
-
execute() {
|
|
140
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
(0, fips_1.enableFips)(this.fips || this.config.fips, this.fipsIgnoreError || this.config.fipsIgnoreError);
|
|
142
|
-
this.logger.setLogLevel(this.verbose ? logger_1.LogLevel.DEBUG : logger_1.LogLevel.INFO);
|
|
143
|
-
this.logger.setShouldIncludeTime(this.verbose);
|
|
144
|
-
if (!this.basePaths || !this.basePaths.length) {
|
|
145
|
-
this.context.stderr.write('Missing basePath\n');
|
|
146
|
-
return 1;
|
|
147
|
-
}
|
|
148
|
-
if (!this.config.env) {
|
|
149
|
-
this.config.env = this.env;
|
|
150
|
-
}
|
|
151
|
-
if (this.rawXPathTags) {
|
|
152
|
-
this.xpathTags = this.parseXPathTags(this.rawXPathTags);
|
|
153
|
-
if (Object.keys(this.xpathTags).length !== this.rawXPathTags.length) {
|
|
154
|
-
return 1;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
const api = this.getApiHelper();
|
|
158
|
-
// Normalizing the basePath to resolve .. and .
|
|
159
|
-
this.basePaths = this.basePaths.map((basePath) => upath_1.default.normalize(basePath));
|
|
160
|
-
this.logger.info((0, renderer_1.renderCommandInfo)(this.basePaths, this.service, this.maxConcurrency, this.dryRun));
|
|
161
|
-
const spanTags = yield this.getSpanTags();
|
|
162
|
-
const customTags = this.getCustomTags();
|
|
163
|
-
const customMeasures = this.getCustomMeasures();
|
|
164
|
-
const reportTags = this.getReportTags();
|
|
165
|
-
const reportMeasures = this.getReportMeasures();
|
|
166
|
-
const payloads = yield this.getMatchingJUnitXMLFiles(spanTags, customTags, customMeasures, reportTags, reportMeasures);
|
|
167
|
-
const upload = (p) => this.uploadJUnitXML(api, p);
|
|
168
|
-
const initialTime = new Date().getTime();
|
|
169
|
-
yield (0, concurrency_1.doWithMaxConcurrency)(this.maxConcurrency, payloads, upload);
|
|
170
|
-
const totalTimeSeconds = (Date.now() - initialTime) / 1000;
|
|
171
|
-
this.logger.info((0, renderer_1.renderSuccessfulUpload)(this.dryRun, payloads.length, totalTimeSeconds));
|
|
172
|
-
if (!this.skipGitMetadataUpload) {
|
|
173
|
-
if (yield (0, library_1.isGitRepo)()) {
|
|
174
|
-
const traceId = (0, id_1.default)();
|
|
175
|
-
const requestBuilder = (0, utils_1.getRequestBuilder)({
|
|
176
|
-
baseUrl: api_1.apiUrl,
|
|
177
|
-
apiKey: this.config.apiKey,
|
|
178
|
-
headers: new Map([
|
|
179
|
-
[TRACE_ID_HTTP_HEADER, traceId],
|
|
180
|
-
[PARENT_ID_HTTP_HEADER, traceId],
|
|
181
|
-
]),
|
|
182
|
-
});
|
|
183
|
-
try {
|
|
184
|
-
this.logger.info(`${this.dryRun ? '[DRYRUN] ' : ''}Syncing git metadata...`);
|
|
185
|
-
let elapsed = 0;
|
|
186
|
-
if (!this.dryRun) {
|
|
187
|
-
elapsed = yield (0, utils_1.timedExecAsync)(this.uploadToGitDB.bind(this), { requestBuilder });
|
|
188
|
-
}
|
|
189
|
-
this.logger.info((0, renderer_1.renderSuccessfulGitDBSync)(this.dryRun, elapsed));
|
|
190
|
-
}
|
|
191
|
-
catch (err) {
|
|
192
|
-
this.logger.info((0, renderer_1.renderFailedGitDBSync)(err));
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
this.logger.info(`${this.dryRun ? '[DRYRUN] ' : ''}Not syncing git metadata (not a git repo)`);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
this.logger.debug('Not syncing git metadata (skip git upload flag detected)');
|
|
201
|
-
}
|
|
202
|
-
if (!this.dryRun) {
|
|
203
|
-
this.context.stdout.write((0, renderer_1.renderSuccessfulCommand)(spanTags, this.service, this.config.env));
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
uploadToGitDB(opts) {
|
|
208
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
209
|
-
yield (0, gitdb_1.uploadToGitDB)(this.logger, opts.requestBuilder, yield (0, git_1.newSimpleGit)(), this.dryRun, this.gitRepositoryURL);
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
getApiHelper() {
|
|
213
|
-
if (!this.config.apiKey) {
|
|
214
|
-
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.`);
|
|
215
|
-
throw new Error('API key is missing');
|
|
216
|
-
}
|
|
217
|
-
return (0, api_1.apiConstructor)(api_1.intakeUrl, this.config.apiKey);
|
|
218
|
-
}
|
|
219
|
-
parseXPathTags(rawXPathTags) {
|
|
220
|
-
return rawXPathTags.reduce((xpathTags, rawExpression) => {
|
|
221
|
-
const index = rawExpression.indexOf('=');
|
|
222
|
-
if (index === -1) {
|
|
223
|
-
this.context.stderr.write('Invalid xpath-tag: missing =. Value must be <tag>=<xpath-expression>\n');
|
|
224
|
-
return xpathTags;
|
|
225
|
-
}
|
|
226
|
-
const tagName = rawExpression.substring(0, index);
|
|
227
|
-
const xPath = rawExpression.substring(index + 1);
|
|
228
|
-
xpathTags[tagName] = xPath;
|
|
229
|
-
return xpathTags;
|
|
230
|
-
}, {});
|
|
231
|
-
}
|
|
232
|
-
getMatchingJUnitXMLFiles(spanTags, customTags, customMeasures, reportTags, reportMeasures) {
|
|
233
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
-
let basePaths;
|
|
235
|
-
let searchFoldersRecursively;
|
|
236
|
-
let filterFile;
|
|
237
|
-
if (this.automaticReportsDiscovery) {
|
|
238
|
-
basePaths = this.basePaths || ['.'];
|
|
239
|
-
searchFoldersRecursively = true;
|
|
240
|
-
filterFile = isJunitXmlReport;
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
// maintaining legacy matching logic for backward compatibility
|
|
244
|
-
basePaths = this.basePaths || [];
|
|
245
|
-
searchFoldersRecursively = false;
|
|
246
|
-
filterFile = (file) => upath_1.default.extname(file) === '.xml';
|
|
247
|
-
}
|
|
248
|
-
const validUniqueFiles = (0, file_finder_1.findFiles)(basePaths, searchFoldersRecursively, (0, glob_1.parsePathsList)(this.ignoredPaths), filterFile, validateXml, (filePath, errorMessage) => this.context.stdout.write((0, renderer_1.renderInvalidFile)(filePath, errorMessage)));
|
|
249
|
-
return validUniqueFiles.map((jUnitXMLFilePath) => ({
|
|
250
|
-
hostname: os_1.default.hostname(),
|
|
251
|
-
logsEnabled: this.logs,
|
|
252
|
-
xpathTags: this.xpathTags,
|
|
253
|
-
spanTags,
|
|
254
|
-
customTags,
|
|
255
|
-
customMeasures,
|
|
256
|
-
reportTags,
|
|
257
|
-
reportMeasures,
|
|
258
|
-
xmlPath: jUnitXMLFilePath,
|
|
259
|
-
}));
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
getSpanTags() {
|
|
263
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
264
|
-
const ciSpanTags = (0, ci_1.getCISpanTags)();
|
|
265
|
-
const gitSpanTags = yield (0, format_git_span_data_1.getGitMetadata)();
|
|
266
|
-
const userGitSpanTags = (0, user_provided_git_1.getUserGitSpanTags)();
|
|
267
|
-
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, gitSpanTags), ciSpanTags), userGitSpanTags), (this.config.env ? { env: this.config.env } : {})), { service: this.service });
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
getCustomTags() {
|
|
271
|
-
const envVarTags = this.config.envVarTags ? (0, tags_1.parseTags)(this.config.envVarTags.split(',')) : {};
|
|
272
|
-
const cliTags = this.tags ? (0, tags_1.parseTags)(this.tags) : {};
|
|
273
|
-
return Object.assign(Object.assign({}, cliTags), envVarTags);
|
|
274
|
-
}
|
|
275
|
-
getCustomMeasures() {
|
|
276
|
-
const envVarMetrics = this.config.envVarMetrics ? (0, tags_1.parseMetrics)(this.config.envVarMetrics.split(',')) : {};
|
|
277
|
-
const envVarMeasures = this.config.envVarMeasures ? (0, tags_1.parseMetrics)(this.config.envVarMeasures.split(',')) : {};
|
|
278
|
-
const cliMeasures = this.measures ? (0, tags_1.parseMetrics)(this.measures) : {};
|
|
279
|
-
return Object.assign(Object.assign(Object.assign({}, cliMeasures), envVarMetrics), envVarMeasures);
|
|
280
|
-
}
|
|
281
|
-
getReportTags() {
|
|
282
|
-
return this.reportTags ? (0, tags_1.parseTags)(this.reportTags) : {};
|
|
283
|
-
}
|
|
284
|
-
getReportMeasures() {
|
|
285
|
-
const cliMeasures = this.reportMeasures ? (0, tags_1.parseMetrics)(this.reportMeasures) : {};
|
|
286
|
-
return Object.assign({}, cliMeasures);
|
|
287
|
-
}
|
|
288
|
-
uploadJUnitXML(api, jUnitXML) {
|
|
289
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
-
if (this.dryRun) {
|
|
291
|
-
this.logger.info((0, renderer_1.renderDryRunUpload)(jUnitXML));
|
|
292
|
-
return;
|
|
293
|
-
}
|
|
294
|
-
try {
|
|
295
|
-
this.logger.info((0, renderer_1.renderUpload)(jUnitXML));
|
|
296
|
-
yield (0, retry_1.retryRequest)(() => api.uploadJUnitXML(jUnitXML), {
|
|
297
|
-
onRetry: (e, attempt) => {
|
|
298
|
-
this.context.stderr.write((0, renderer_1.renderRetriedUpload)(jUnitXML, e.message, attempt));
|
|
299
|
-
},
|
|
300
|
-
retries: 5,
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
this.context.stderr.write((0, renderer_1.renderFailedUpload)(jUnitXML, error));
|
|
305
|
-
if (error.response) {
|
|
306
|
-
// If it's an axios error
|
|
307
|
-
if (!errorCodesStopUpload.includes(error.response.status)) {
|
|
308
|
-
// And a status code that should not stop the whole upload, just return
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
throw error;
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
exports.JunitUploadCommand = JunitUploadCommand;
|
|
318
|
-
JunitUploadCommand.paths = [['junit', 'upload']];
|
|
319
|
-
JunitUploadCommand.usage = clipanion_1.Command.Usage({
|
|
320
|
-
category: 'CI Visibility',
|
|
321
|
-
description: 'Upload jUnit XML test reports files to Datadog.',
|
|
322
|
-
details: `
|
|
323
|
-
This command will upload to jUnit XML test reports files to Datadog.\n
|
|
324
|
-
See README for details.
|
|
325
|
-
`,
|
|
326
|
-
examples: [
|
|
327
|
-
['Upload all jUnit XML test report files in current directory', 'datadog-ci junit upload --service my-service .'],
|
|
328
|
-
[
|
|
329
|
-
'Discover and upload all jUnit XML test report files doing recursive search in current directory',
|
|
330
|
-
'datadog-ci junit upload --service my-service --auto-discovery .',
|
|
331
|
-
],
|
|
332
|
-
[
|
|
333
|
-
'Discover and upload all jUnit XML test report files doing recursive search in current directory, ignoring src/ignored-module-a and src/ignored-module-b',
|
|
334
|
-
'datadog-ci junit upload --service my-service --ignored-paths src/ignored-module-a,src/ignored-module-b --auto-discovery .',
|
|
335
|
-
],
|
|
336
|
-
[
|
|
337
|
-
'Upload all jUnit XML test report files in src/unit-test-reports and src/acceptance-test-reports',
|
|
338
|
-
'datadog-ci junit upload --service my-service src/unit-test-reports src/acceptance-test-reports',
|
|
339
|
-
],
|
|
340
|
-
[
|
|
341
|
-
'Upload all jUnit XML test report files in current directory and add extra tags globally',
|
|
342
|
-
'datadog-ci junit upload --service my-service --tags key1:value1 --tags key2:value2 .',
|
|
343
|
-
],
|
|
344
|
-
[
|
|
345
|
-
'Upload all jUnit XML test report files in current directory and add extra measures globally',
|
|
346
|
-
'datadog-ci junit upload --service my-service --measures key1:123 --measures key2:321 .',
|
|
347
|
-
],
|
|
348
|
-
[
|
|
349
|
-
'Upload all jUnit XML test report files in current directory to the datadoghq.eu site',
|
|
350
|
-
'DD_SITE=datadoghq.eu datadog-ci junit upload --service my-service .',
|
|
351
|
-
],
|
|
352
|
-
[
|
|
353
|
-
'Upload all jUnit XML test report files in current directory while also collecting logs',
|
|
354
|
-
'datadog-ci junit upload --service my-service --logs .',
|
|
355
|
-
],
|
|
356
|
-
[
|
|
357
|
-
'Upload all jUnit XML test report files in current directory customizing test suite with xpath',
|
|
358
|
-
'datadog-ci junit upload --service my-service --xpath-tag test.suite=/testcase/@classname .',
|
|
359
|
-
],
|
|
360
|
-
[
|
|
361
|
-
'Upload all jUnit XML test report files in current directory adding a custom tag from property with xpath',
|
|
362
|
-
"datadog-ci junit upload --service my-service --xpath-tag custom_tag=/testcase/..//property[@name='property-name'] .",
|
|
363
|
-
],
|
|
364
|
-
[
|
|
365
|
-
'Upload all jUnit XML test report files in current directory with extra verbosity',
|
|
366
|
-
'datadog-ci junit upload --verbose --service my-service .',
|
|
367
|
-
],
|
|
368
|
-
],
|
|
369
|
-
});
|
|
370
|
-
//# sourceMappingURL=upload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/junit/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { SpanTags } from '@datadog/datadog-ci-base/helpers/interfaces';
|
|
2
|
-
export declare const getTestRunsUrl: (spanTags: SpanTags, queryPrefix?: string) => string;
|
|
3
|
-
export declare const getTestCommitRedirectURL: (spanTags: SpanTags, service?: string, env?: string) => string;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTestCommitRedirectURL = exports.getTestRunsUrl = void 0;
|
|
4
|
-
const app_1 = require("@datadog/datadog-ci-base/helpers/app");
|
|
5
|
-
const tags_1 = require("@datadog/datadog-ci-base/helpers/tags");
|
|
6
|
-
const getTestRunsUrl = (spanTags, queryPrefix = '') => {
|
|
7
|
-
const path = (0, app_1.getTestRunsUrlPath)(spanTags, queryPrefix);
|
|
8
|
-
return path ? `${(0, app_1.getBaseUrl)()}${path}` : '';
|
|
9
|
-
};
|
|
10
|
-
exports.getTestRunsUrl = getTestRunsUrl;
|
|
11
|
-
const getTestCommitRedirectURL = (spanTags, service, env) => {
|
|
12
|
-
if (!spanTags[tags_1.GIT_REPOSITORY_URL] || !spanTags[tags_1.GIT_BRANCH] || !spanTags[tags_1.GIT_SHA] || !service) {
|
|
13
|
-
return '';
|
|
14
|
-
}
|
|
15
|
-
const encodedRepoUrl = encodeURIComponent(`${spanTags[tags_1.GIT_REPOSITORY_URL]}`);
|
|
16
|
-
const encodedService = encodeURIComponent(service);
|
|
17
|
-
const encodedBranch = encodeURIComponent(`${spanTags[tags_1.GIT_BRANCH]}`);
|
|
18
|
-
const commitSha = `${spanTags[tags_1.GIT_SHA]}`;
|
|
19
|
-
let url = `${(0, app_1.getBaseUrl)()}ci/redirect/tests/${encodedRepoUrl}/-/${encodedService}/-/${encodedBranch}/-/${commitSha}`;
|
|
20
|
-
if (env) {
|
|
21
|
-
url += `?env=${encodeURIComponent(env)}`;
|
|
22
|
-
}
|
|
23
|
-
return url;
|
|
24
|
-
};
|
|
25
|
-
exports.getTestCommitRedirectURL = getTestCommitRedirectURL;
|
|
26
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/junit/utils.ts"],"names":[],"mappings":";;;AAAA,8DAAmF;AAEnF,gEAA6F;AAEtF,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,WAAW,GAAG,EAAE,EAAU,EAAE;IAC7E,MAAM,IAAI,GAAG,IAAA,wBAAkB,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAEtD,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAA,gBAAU,GAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAC7C,CAAC,CAAA;AAJY,QAAA,cAAc,kBAI1B;AAEM,MAAM,wBAAwB,GAAG,CAAC,QAAkB,EAAE,OAAgB,EAAE,GAAY,EAAU,EAAE;IACrG,IAAI,CAAC,QAAQ,CAAC,yBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAO,CAAC,IAAI,CAAC,OAAO,EAAE;QAC5F,OAAO,EAAE,CAAA;KACV;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,QAAQ,CAAC,yBAAkB,CAAC,EAAE,CAAC,CAAA;IAC5E,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,QAAQ,CAAC,iBAAU,CAAC,EAAE,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,GAAG,QAAQ,CAAC,cAAO,CAAC,EAAE,CAAA;IAExC,IAAI,GAAG,GAAG,GAAG,IAAA,gBAAU,GAAE,qBAAqB,cAAc,MAAM,cAAc,MAAM,aAAa,MAAM,SAAS,EAAE,CAAA;IACpH,IAAI,GAAG,EAAE;QACP,GAAG,IAAI,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAA;KACzC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAhBY,QAAA,wBAAwB,4BAgBpC"}
|