build-raptor 0.117.0 → 0.119.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.
Files changed (118) hide show
  1. package/dist/deps/build-raptor-core/breakdown.d.ts +2 -2
  2. package/dist/deps/build-raptor-core/breakdown.js +23 -9
  3. package/dist/deps/build-raptor-core/build-raptor-config.d.ts +1 -1
  4. package/dist/deps/build-raptor-core/default-asset-publisher.d.ts +0 -1
  5. package/dist/deps/build-raptor-core/engine-bootstrapper.d.ts +3 -1
  6. package/dist/deps/build-raptor-core/engine-bootstrapper.js +29 -11
  7. package/dist/deps/build-raptor-core/engine-event-scheme.d.ts +1 -1
  8. package/dist/deps/build-raptor-core/engine.js +23 -9
  9. package/dist/deps/build-raptor-core/execution-plan.js +1 -1
  10. package/dist/deps/build-raptor-core/execution-record.d.ts +1 -1
  11. package/dist/deps/build-raptor-core/execution-type.d.ts +2 -2
  12. package/dist/deps/build-raptor-core/find-repo-dir.js +2 -3
  13. package/dist/deps/build-raptor-core/fingerprint-ledger.js +23 -9
  14. package/dist/deps/build-raptor-core/fingerprint.d.ts +1 -1
  15. package/dist/deps/build-raptor-core/fingerprint.js +2 -3
  16. package/dist/deps/build-raptor-core/fingerprinter.d.ts +1 -1
  17. package/dist/deps/build-raptor-core/fingerprinter.js +23 -9
  18. package/dist/deps/build-raptor-core/hasher.d.ts +0 -1
  19. package/dist/deps/build-raptor-core/hasher.js +24 -10
  20. package/dist/deps/build-raptor-core/index.js +6 -2
  21. package/dist/deps/build-raptor-core/model.js +1 -1
  22. package/dist/deps/build-raptor-core/nop-asset-publisher.d.ts +0 -1
  23. package/dist/deps/build-raptor-core/phase.d.ts +1 -1
  24. package/dist/deps/build-raptor-core/planner.js +1 -1
  25. package/dist/deps/build-raptor-core/purger.js +23 -9
  26. package/dist/deps/build-raptor-core/slot-index.d.ts +1 -1
  27. package/dist/deps/build-raptor-core/slot-index.js +1 -1
  28. package/dist/deps/build-raptor-core/step-by-step-transmitter.d.ts +7 -5
  29. package/dist/deps/build-raptor-core/step-by-step-transmitter.js +48 -28
  30. package/dist/deps/build-raptor-core/tar-stream.d.ts +1 -2
  31. package/dist/deps/build-raptor-core/tar-stream.js +24 -10
  32. package/dist/deps/build-raptor-core/task-executor.js +23 -9
  33. package/dist/deps/build-raptor-core/task-store-cli.js +23 -9
  34. package/dist/deps/build-raptor-core/task-store-event.d.ts +1 -1
  35. package/dist/deps/build-raptor-core/task-store.d.ts +2 -2
  36. package/dist/deps/build-raptor-core/task-store.js +23 -9
  37. package/dist/deps/build-raptor-core/task-tracker.js +1 -1
  38. package/dist/deps/build-raptor-core/task.js +1 -1
  39. package/dist/deps/build-raptor-core/updatable-task-output-registry.js +23 -9
  40. package/dist/deps/build-raptor-core/validate-task-infos.js +2 -3
  41. package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.js +6 -2
  42. package/dist/deps/build-raptor-core-testkit/driver.d.ts +0 -1
  43. package/dist/deps/build-raptor-core-testkit/driver.js +23 -9
  44. package/dist/deps/build-raptor-core-testkit/index.js +6 -2
  45. package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.d.ts +5 -5
  46. package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.js +23 -9
  47. package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.js +23 -9
  48. package/dist/deps/core-types/core-types.d.ts +4 -4
  49. package/dist/deps/core-types/core-types.js +26 -13
  50. package/dist/deps/core-types/index.js +6 -2
  51. package/dist/deps/logger/index.js +6 -2
  52. package/dist/deps/logger/logger.d.ts +2 -3
  53. package/dist/deps/logger/logger.js +25 -12
  54. package/dist/deps/misc/arrays.js +5 -6
  55. package/dist/deps/misc/camelize-record.d.ts +2 -2
  56. package/dist/deps/misc/camelize-record.js +2 -3
  57. package/dist/deps/misc/clean-directory.js +24 -11
  58. package/dist/deps/misc/constructs.js +6 -7
  59. package/dist/deps/misc/directory-scanner.d.ts +3 -4
  60. package/dist/deps/misc/directory-scanner.js +23 -9
  61. package/dist/deps/misc/executor.js +1 -1
  62. package/dist/deps/misc/file-system-storage-client.d.ts +0 -1
  63. package/dist/deps/misc/file-system-storage-client.js +23 -9
  64. package/dist/deps/misc/folderify.d.ts +2 -2
  65. package/dist/deps/misc/folderify.js +25 -12
  66. package/dist/deps/misc/graph.d.ts +1 -1
  67. package/dist/deps/misc/graph.js +1 -1
  68. package/dist/deps/misc/in-memory-storage-client.d.ts +0 -1
  69. package/dist/deps/misc/in-memory-storage-client.js +1 -1
  70. package/dist/deps/misc/index.js +6 -2
  71. package/dist/deps/misc/int.d.ts +1 -1
  72. package/dist/deps/misc/int.js +2 -3
  73. package/dist/deps/misc/internal/graph-executor.js +1 -1
  74. package/dist/deps/misc/maps.js +4 -5
  75. package/dist/deps/misc/misc.d.ts +1 -2
  76. package/dist/deps/misc/misc.js +28 -14
  77. package/dist/deps/misc/object-map.d.ts +1 -1
  78. package/dist/deps/misc/promises.js +2 -3
  79. package/dist/deps/misc/records.js +4 -5
  80. package/dist/deps/misc/slurp-dir.js +2 -3
  81. package/dist/deps/misc/storage-client.d.ts +1 -2
  82. package/dist/deps/misc/stream-to-buffer.d.ts +0 -1
  83. package/dist/deps/misc/stream-to-buffer.js +2 -3
  84. package/dist/deps/misc/strings.js +6 -7
  85. package/dist/deps/misc/typed-publisher.d.ts +1 -1
  86. package/dist/deps/misc/typed-publisher.js +1 -1
  87. package/dist/deps/repo-protocol/index.js +6 -2
  88. package/dist/deps/repo-protocol/repo-protocol.d.ts +2 -3
  89. package/dist/deps/repo-protocol/task-info.d.ts +2 -2
  90. package/dist/deps/repo-protocol/test-run-summary.d.ts +1 -1
  91. package/dist/deps/repo-protocol-toolbox/generate-task-infos.js +2 -3
  92. package/dist/deps/repo-protocol-toolbox/index.js +6 -2
  93. package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.js +1 -1
  94. package/dist/deps/repo-protocol-toolbox/task-definition.d.ts +2 -2
  95. package/dist/deps/s3-storage-client/get-s3-storage-client-factory.js +2 -3
  96. package/dist/deps/s3-storage-client/index.js +6 -2
  97. package/dist/deps/s3-storage-client/s3-storage-client.d.ts +0 -1
  98. package/dist/deps/s3-storage-client/s3-storage-client.js +23 -9
  99. package/dist/deps/task-name/index.js +6 -2
  100. package/dist/deps/task-name/task-name.d.ts +2 -2
  101. package/dist/deps/task-name/task-name.js +3 -3
  102. package/dist/deps/unit-metadata/index.js +6 -2
  103. package/dist/deps/unit-metadata/unit-metadata.d.ts +1 -1
  104. package/dist/deps/unit-metadata/unit-metadata.js +1 -1
  105. package/dist/deps/yarn-repo-protocol/build-task-record.d.ts +2 -2
  106. package/dist/deps/yarn-repo-protocol/generate-test-run-summary.js +2 -3
  107. package/dist/deps/yarn-repo-protocol/index.js +6 -2
  108. package/dist/deps/yarn-repo-protocol/rerun-list.d.ts +1 -1
  109. package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.d.ts +1 -1
  110. package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.d.ts +3 -1
  111. package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.js +69 -16
  112. package/dist/src/build-raptor-cli.d.ts +4 -4
  113. package/dist/src/build-raptor-cli.js +102 -47
  114. package/dist/src/main.js +6 -2
  115. package/dist/src/register-asset-request.d.ts +3 -3
  116. package/dist/src/task-execution-visualizer.d.ts +9 -1
  117. package/dist/src/task-execution-visualizer.js +63 -4
  118. package/package.json +2 -2
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -11,19 +15,32 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
11
15
  }) : function(o, v) {
12
16
  o["default"] = v;
13
17
  });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
21
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
37
  };
24
38
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.main = exports.run = exports.getEnv = void 0;
39
+ exports.getEnv = getEnv;
40
+ exports.run = run;
41
+ exports.main = main;
26
42
  const build_raptor_core_1 = require("build-raptor-core");
43
+ const fs_1 = __importDefault(require("fs"));
27
44
  const fse = __importStar(require("fs-extra"));
28
45
  const logger_1 = require("logger");
29
46
  const misc_1 = require("misc");
@@ -37,7 +54,6 @@ const task_execution_visualizer_1 = require("./task-execution-visualizer");
37
54
  function getEnv(envVarName) {
38
55
  return process.env[envVarName]; // eslint-disable-line no-process-env
39
56
  }
40
- exports.getEnv = getEnv;
41
57
  const GB = 1024 * 1024 * 1024;
42
58
  async function createStorageClient() {
43
59
  return await misc_1.FilesystemStorageClient.create(path.join(os.homedir(), '.build-raptor/storage'), {
@@ -82,26 +98,63 @@ async function run(options) {
82
98
  const repoProtocol = new yarn_repo_protocol_1.YarnRepoProtocol(logger, assetPublisher);
83
99
  const bootstrapper = await build_raptor_core_1.EngineBootstrapper.create(rootDir, storageClient, repoProtocol, t0, options.criticality, '', logger);
84
100
  const testOutput = new Map();
85
- const visualizer = new task_execution_visualizer_1.TaskExecutionVisualizer();
101
+ const visualizer = options.taskProgressOutput ? new task_execution_visualizer_1.TaskExecutionVisualizer() : undefined;
102
+ // TODO(imaman): use a writable stream?
103
+ const allTestsFile = path.join(buildRaptorDir, 'all-tests');
104
+ // Wipe out the file
105
+ fs_1.default.writeFileSync(allTestsFile, '');
106
+ let atLeastOneTest = false;
107
+ bootstrapper.transmitter.addProcessor(s => {
108
+ if (s.step === 'ASSET_PUBLISHED' ||
109
+ s.step === 'BUILD_RUN_STARTED' ||
110
+ s.step === 'PUBLIC_FILES' ||
111
+ s.step === 'TASK_STORE_GET' ||
112
+ s.step === 'TASK_STORE_PUT') {
113
+ return;
114
+ }
115
+ if (s.step === 'TEST_ENDED') {
116
+ atLeastOneTest = true;
117
+ return;
118
+ }
119
+ if (s.step === 'PLAN_PREPARED') {
120
+ visualizer?.addTasks(s.taskNames);
121
+ return;
122
+ }
123
+ if (s.step === 'TASK_ENDED') {
124
+ if (visualizer) {
125
+ const line = visualizer.ended(s.taskName, s.verdict, s.executionType);
126
+ if (line) {
127
+ logger.print(line);
128
+ }
129
+ }
130
+ return;
131
+ }
132
+ if (s.step === 'BUILD_RUN_ENDED') {
133
+ // If there are no tests, don't print the message asbout the location of the all-test-logs file.
134
+ // If there is no summary message, do not print it.
135
+ // If one of them is printed, add a prefix of three blank lines
136
+ const line = visualizer?.summary(Date.now() - t0) ?? '';
137
+ const whereIsTheLogMessage = atLeastOneTest ? `All test logs were written to ${allTestsFile}\n\n` : ``;
138
+ if (whereIsTheLogMessage || line) {
139
+ // The logger does .trim() on the message so we use "." instead of a "pure" blank line
140
+ logger.print(`.\n.\n.\n${whereIsTheLogMessage}${line}`);
141
+ }
142
+ return;
143
+ }
144
+ (0, misc_1.shouldNeverHappen)(s);
145
+ });
86
146
  bootstrapper.subscribable.on('testEnded', arg => {
87
147
  (0, misc_1.assigningGet)(testOutput, arg.taskName, () => []).push(arg);
88
148
  });
89
149
  bootstrapper.subscribable.on('executionStarted', arg => {
90
- if (options.taskProgressOutput) {
91
- logger.print(visualizer.begin(arg));
150
+ if (visualizer) {
151
+ visualizer.begin(arg);
92
152
  }
93
153
  else {
94
154
  logger.print(`=============================== ${arg} =================================`);
95
155
  }
96
156
  });
97
157
  bootstrapper.subscribable.on('executionEnded', async (arg) => {
98
- if (options.taskProgressOutput) {
99
- logger.print(visualizer.ended(arg.taskName, (0, misc_1.switchOn)(arg.status, {
100
- OK: () => '🏁',
101
- FAIL: () => '🏁',
102
- CRASH: () => '🏁',
103
- })));
104
- }
105
158
  // TODO(imaman): cover (output is indeed written in file structure)
106
159
  await fse.ensureDir(buildRaptorDirTasks);
107
160
  const fileName = path.join(buildRaptorDirTasks, (0, misc_1.toReasonableFileName)(arg.taskName));
@@ -116,19 +169,19 @@ async function run(options) {
116
169
  finally {
117
170
  stream.end();
118
171
  }
119
- reportTests(logger, testOutput.get(arg.taskName) ?? [], options.testReporting ?? 'tree');
120
- const doPrint = options.printPassing ||
172
+ reportTests(logger, testOutput.get(arg.taskName) ?? [], options.testReporting ?? 'tree-all', allTestsFile);
173
+ const dumpTaskOutputToTerminal = options.printPassing ||
121
174
  (0, misc_1.switchOn)(arg.status, {
122
175
  CRASH: () => false,
123
176
  OK: () => false,
124
177
  FAIL: () => true,
125
178
  });
126
- if (!doPrint) {
127
- return;
179
+ if (dumpTaskOutputToTerminal) {
180
+ await (0, misc_1.dumpFile)(arg.outputFile, process.stdout);
181
+ logger.print(`\n\n`);
128
182
  }
129
- await (0, misc_1.dumpFile)(arg.outputFile, process.stdout);
183
+ fs_1.default.appendFileSync(allTestsFile, fs_1.default.readFileSync(arg.outputFile) + '\n');
130
184
  logger.info(`output of ${arg.taskName} dumped`);
131
- logger.print(`\n\n`);
132
185
  });
133
186
  bootstrapper.subscribable.on('executionSkipped', tn => {
134
187
  logger.print(`Task ${tn} succeeded earlier. Skipping.\n`, 'low');
@@ -158,17 +211,13 @@ async function run(options) {
158
211
  // eslint-disable-next-line require-atomic-updates
159
212
  process.exitCode = exitCode;
160
213
  }
161
- exports.run = run;
162
- function reportTests(logger, arr, tr) {
163
- if (tr === 'just-failing') {
164
- return;
165
- }
166
- let printPassing;
167
- if (tr === 'tree') {
168
- printPassing = true;
214
+ function reportTests(logger, arr, tr, allTasksFile) {
215
+ let renderPassingTests;
216
+ if (tr === 'tree-all') {
217
+ renderPassingTests = true;
169
218
  }
170
219
  else if (tr === 'tree-just-failing') {
171
- printPassing = false;
220
+ renderPassingTests = false;
172
221
  }
173
222
  else {
174
223
  (0, misc_1.shouldNeverHappen)(tr);
@@ -209,19 +258,25 @@ function reportTests(logger, arr, tr) {
209
258
  TEST_TIMEDOUT: () => '⏲️ [timedout]',
210
259
  });
211
260
  const duration = at.durationMillis === undefined ? '' : ` (${at.durationMillis} ms)`;
212
- logger.print(`${spaces}${v} ${at.testPath.at(-1)}${duration}`, 'high');
261
+ const message = `${spaces}${v} ${at.testPath.at(-1)}${duration}`;
262
+ // TODO(imaman): create a dedicate logger that write to the allTasksFile
263
+ logger.print(message, 'high');
264
+ fs_1.default.appendFileSync(allTasksFile, message + '\n');
213
265
  prev = k;
214
266
  }
215
267
  }
216
268
  const list = Object.entries((0, misc_1.groupBy)(arr, at => at.fileName)).map(([fileName, tests]) => ({ fileName, tests }));
217
269
  const sorted = (0, misc_1.sortBy)(list, at => at.fileName);
218
270
  const passing = sorted.filter(at => isPassing(at.tests));
219
- if (printPassing) {
220
- for (const at of passing) {
221
- logger.print(`✅ PASSED ${at.fileName}`, 'high');
271
+ for (const at of passing) {
272
+ const message = `✅ PASSED ${at.fileName}`;
273
+ fs_1.default.appendFileSync(allTasksFile, message + '\n');
274
+ if (renderPassingTests) {
275
+ logger.print(message, 'high');
222
276
  }
223
277
  }
224
278
  for (const at of sorted.filter(at => !isPassing(at.tests))) {
279
+ fs_1.default.appendFileSync(allTasksFile, at.fileName + '\n');
225
280
  logger.print(at.fileName, 'high');
226
281
  printTests(at.tests);
227
282
  }
@@ -253,7 +308,7 @@ function main() {
253
308
  default: [],
254
309
  })
255
310
  .option('print-passing', {
256
- describe: 'whether to print the output of passing tasks to the terminal.',
311
+ describe: 'whether to dump the output of passing tasks to the terminal.',
257
312
  type: 'boolean',
258
313
  default: false,
259
314
  })
@@ -263,6 +318,7 @@ function main() {
263
318
  demandOption: false,
264
319
  default: 8,
265
320
  })
321
+ // TODO(imaman): seems like --compact, --loudness can be replaced by --task-progress-output
266
322
  .options('compact', {
267
323
  describe: 'whether to list only executing tasks (i.e., do not print skipped tasks)',
268
324
  type: 'boolean',
@@ -286,9 +342,9 @@ function main() {
286
342
  demandOption: false,
287
343
  })
288
344
  .option('test-reporting', {
289
- choices: ['just-failing', 'tree', 'tree-just-failing'],
345
+ choices: ['tree-all', 'tree-just-failing'],
290
346
  describe: 'test reporing policy',
291
- default: 'tree',
347
+ default: 'tree-just-failing',
292
348
  })
293
349
  .option('test-caching', {
294
350
  describe: 'whether to skip running tests that have already passed',
@@ -296,7 +352,7 @@ function main() {
296
352
  default: true,
297
353
  })
298
354
  .option('task-progress-output', {
299
- describe: 'whether to print number of tasks ended/started',
355
+ describe: 'whether to print a line indicating verdict/execution-type for each task',
300
356
  type: 'boolean',
301
357
  default: false,
302
358
  })
@@ -327,7 +383,7 @@ function main() {
327
383
  compact: argv.compact,
328
384
  criticality: stringToLoudness(argv.loudness),
329
385
  testCaching: argv.testCaching,
330
- testReporting: tr === 'just-failing' || tr === 'tree' || tr === 'tree-just-failing' || tr === undefined
386
+ testReporting: tr === 'tree-all' || tr === 'tree-just-failing' || tr === undefined
331
387
  ? tr
332
388
  : (0, misc_1.failMe)(`unsupported value: ${tr}`),
333
389
  stepByStepProcessor: argv.stepByStepProcessor,
@@ -363,7 +419,7 @@ function main() {
363
419
  compact: argv.compact,
364
420
  criticality: stringToLoudness(argv.loudness),
365
421
  testCaching: argv.testCaching,
366
- testReporting: tr === 'just-failing' || tr === 'tree' || tr === 'tree-just-failing' || tr === undefined
422
+ testReporting: tr === 'tree-all' || tr === 'tree-just-failing' || tr === undefined
367
423
  ? tr
368
424
  : (0, misc_1.failMe)(`unsupported value: ${tr}`),
369
425
  stepByStepProcessor: argv.stepByStepProcessor,
@@ -396,7 +452,6 @@ function main() {
396
452
  .demandCommand(1)
397
453
  .parse());
398
454
  }
399
- exports.main = main;
400
455
  function stringToLoudness(s) {
401
456
  if (s === 's') {
402
457
  return 'high';
@@ -409,4 +464,4 @@ function stringToLoudness(s) {
409
464
  }
410
465
  throw new Error(`illegal loudness value: "${s}"`);
411
466
  }
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcmFwdG9yLWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1yYXB0b3ItY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBd0c7QUFDeEcsOENBQStCO0FBQy9CLG1DQUFpRTtBQUNqRSwrQkFZYTtBQUNiLHVDQUF3QjtBQUN4QiwyQ0FBNEI7QUFFNUIseURBQTZEO0FBRTdELGtEQUF5QjtBQUN6QiwyQ0FBdUM7QUFDdkMsMkRBQXFEO0FBRXJELDJFQUFxRTtBQXlCckUsU0FBZ0IsTUFBTSxDQUFDLFVBQXNCO0lBQzNDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDLHFDQUFxQztBQUN0RSxDQUFDO0FBRkQsd0JBRUM7QUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQTtBQUM3QixLQUFLLFVBQVUsbUJBQW1CO0lBQ2hDLE9BQU8sTUFBTSw4QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsRUFBRTtRQUM1RiwrQkFBK0IsRUFBRSxDQUFDLEdBQUcsRUFBRTtLQUN4QyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLEdBQUcsQ0FBQyxPQUFnQjtJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxHQUFHLEdBQUcsQ0FBQSxDQUFDLHFDQUFxQztJQUNwRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1FBQ2pDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7S0FDM0Q7SUFDRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7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
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcmFwdG9yLWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1yYXB0b3ItY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbURBLHdCQUVDO0FBU0Qsa0JBMExDO0FBaUZELG9CQXdNQztBQWpoQkQseURBQXdHO0FBQ3hHLDRDQUFtQjtBQUNuQiw4Q0FBK0I7QUFDL0IsbUNBQWlFO0FBQ2pFLCtCQVlhO0FBQ2IsdUNBQXdCO0FBQ3hCLDJDQUE0QjtBQUU1Qix5REFBNkQ7QUFFN0Qsa0RBQXlCO0FBQ3pCLDJDQUF1QztBQUN2QywyREFBcUQ7QUFFckQsMkVBQXFFO0FBeUJyRSxTQUFnQixNQUFNLENBQUMsVUFBc0I7SUFDM0MsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUMscUNBQXFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQTtBQUM3QixLQUFLLFVBQVUsbUJBQW1CO0lBQ2hDLE9BQU8sTUFBTSw4QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsRUFBRTtRQUM1RiwrQkFBK0IsRUFBRSxDQUFDLEdBQUcsRUFBRTtLQUN4QyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLEdBQUcsQ0FBQyxPQUFnQjtJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxHQUFHLEdBQUcsQ0FBQSxDQUFDLHFDQUFxQztJQUNwRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtB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
package/dist/src/main.js CHANGED
@@ -2,7 +2,11 @@
2
2
  "use strict";
3
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
6
10
  }) : (function(o, m, k, k2) {
7
11
  if (k2 === undefined) k2 = k;
8
12
  o[k2] = m[k];
@@ -16,4 +20,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
20
  __exportStar(require("./index"), exports);
17
21
  const build_raptor_cli_1 = require("./build-raptor-cli");
18
22
  (0, build_raptor_cli_1.main)();
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFQSw0RUFBNEU7QUFDNUUsdUVBQXVFO0FBQ3ZFLDBDQUF1QjtBQUV2Qix5REFBeUM7QUFFekMsSUFBQSx1QkFBSSxHQUFFLENBQUEifQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsNEVBQTRFO0FBQzVFLHVFQUF1RTtBQUN2RSwwQ0FBdUI7QUFFdkIseURBQXlDO0FBRXpDLElBQUEsdUJBQUksR0FBRSxDQUFBIn0=
@@ -5,14 +5,14 @@ export declare const RegisterAssetRequest: z.ZodObject<{
5
5
  prNumber: z.ZodOptional<z.ZodNumber>;
6
6
  casReference: z.ZodString;
7
7
  }, "strip", z.ZodTypeAny, {
8
- packageName: string;
9
8
  commitHash: string;
9
+ packageName: string;
10
10
  casReference: string;
11
11
  prNumber?: number | undefined;
12
12
  }, {
13
- packageName: string;
14
13
  commitHash: string;
14
+ packageName: string;
15
15
  casReference: string;
16
16
  prNumber?: number | undefined;
17
17
  }>;
18
- export declare type RegisterAssetRequest = z.infer<typeof RegisterAssetRequest>;
18
+ export type RegisterAssetRequest = z.infer<typeof RegisterAssetRequest>;
@@ -1,7 +1,15 @@
1
1
  export declare class TaskExecutionVisualizer {
2
2
  private numStarted;
3
3
  private numEnded;
4
+ private numBlocked;
5
+ private numFailed;
6
+ private numSucceeded;
7
+ private numExectuted;
8
+ private numCached;
9
+ private all;
10
+ addTasks(names: string[]): void;
4
11
  private getLine;
5
12
  begin(taskName: string): string;
6
- ended(taskName: string, verdict: string): string;
13
+ ended(taskName: string, verdict: 'OK' | 'FAIL' | 'UNKNOWN' | 'CRASH', executionType: 'EXECUTED' | 'CACHED' | 'UNKNOWN' | 'CANNOT_START'): string | undefined;
14
+ summary(durationInMillis: number): string;
7
15
  }
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskExecutionVisualizer = void 0;
4
+ const misc_1 = require("misc");
4
5
  class TaskExecutionVisualizer {
5
6
  constructor() {
6
7
  this.numStarted = 0;
7
8
  this.numEnded = 0;
9
+ this.numBlocked = 0;
10
+ this.numFailed = 0;
11
+ this.numSucceeded = 0;
12
+ this.numExectuted = 0;
13
+ this.numCached = 0;
14
+ this.all = 0;
15
+ }
16
+ addTasks(names) {
17
+ this.all += names.length;
8
18
  }
9
19
  getLine(taskName, text) {
10
20
  if (text === undefined) {
@@ -16,11 +26,60 @@ class TaskExecutionVisualizer {
16
26
  ++this.numStarted;
17
27
  return this.getLine(taskName);
18
28
  }
19
- ended(taskName, verdict) {
29
+ ended(taskName, verdict, executionType) {
30
+ if (executionType === 'CANNOT_START' || executionType === 'UNKNOWN') {
31
+ // It looks like UNKNOWN cannot really happen once the task is started, so we ignore it.
32
+ // CANNOT_START can happen but it clutters the output: after a (single) task that failed to build, there can be
33
+ // long chain of dependent tasks that will be CANNOT_START. printing these tasks will distract the user.
34
+ ++this.numBlocked;
35
+ return undefined;
36
+ }
20
37
  ++this.numEnded;
21
- const ret = this.getLine(taskName, verdict);
22
- return ret;
38
+ const cacheIndicator = (0, misc_1.switchOn)(executionType, {
39
+ CACHED: () => {
40
+ ++this.numCached;
41
+ return '🗃️ ';
42
+ },
43
+ EXECUTED: () => {
44
+ ++this.numExectuted;
45
+ return '󠀠✨';
46
+ },
47
+ });
48
+ const verdictIndicator = (0, misc_1.switchOn)(verdict, {
49
+ CRASH: () => {
50
+ ++this.numFailed;
51
+ return '❌';
52
+ },
53
+ FAIL: () => {
54
+ ++this.numFailed;
55
+ return '❌';
56
+ },
57
+ OK: () => {
58
+ ++this.numSucceeded;
59
+ return '✅';
60
+ },
61
+ UNKNOWN: () => '',
62
+ });
63
+ const full = `[${this.all}/${this.all}]`.length;
64
+ const progress = `[${this.numEnded}/${this.all}]`;
65
+ return `${progress.padStart(full, '.')} ${verdictIndicator} ${cacheIndicator} ${taskName}`;
66
+ }
67
+ summary(durationInMillis) {
68
+ const tried = this.numExectuted + this.numCached;
69
+ const width = this.all.toString().length;
70
+ return [
71
+ `Build Summary (${(durationInMillis / 1000).toFixed(1)}s):`,
72
+ `✅ Succeeded: ${this.numSucceeded.toString().padStart(width)}/${this.all}`,
73
+ this.numFailed > 0 ? `❌ Failed: ${this.numFailed.toString().padStart(width)}/${this.all}` : undefined,
74
+ this.numBlocked > 0 ? `⛔ Could not start: ${this.numBlocked.toString().padStart(width)}/${this.all}` : undefined,
75
+ ``,
76
+ `✨ Executed: ${this.numExectuted.toString().padStart(width)}/${tried}`,
77
+ `🗃️ Cache hit: ${this.numCached.toString().padStart(width)}/${tried} (${((100 * this.numCached) /
78
+ tried).toFixed(1)}%)`,
79
+ ]
80
+ .filter(at => at !== undefined)
81
+ .join('\n');
23
82
  }
24
83
  }
25
84
  exports.TaskExecutionVisualizer = TaskExecutionVisualizer;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1leGVjdXRpb24tdmlzdWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YXNrLWV4ZWN1dGlvbi12aXN1YWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsdUJBQXVCO0lBQXBDO1FBQ1UsZUFBVSxHQUFHLENBQUMsQ0FBQTtRQUNkLGFBQVEsR0FBRyxDQUFDLENBQUE7SUFvQnRCLENBQUM7SUFsQlMsT0FBTyxDQUFDLFFBQWdCLEVBQUUsSUFBYTtRQUM3QyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsU0FBUyxRQUFRLEVBQUUsQ0FBQTtTQUMvRDtRQUVELE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLFNBQVMsUUFBUSxFQUFFLENBQUE7SUFDaEUsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFnQjtRQUNwQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUE7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBZ0IsRUFBRSxPQUFlO1FBQ3JDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUNmLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzNDLE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQztDQUNGO0FBdEJELDBEQXNCQyJ9
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1leGVjdXRpb24tdmlzdWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YXNrLWV4ZWN1dGlvbi12aXN1YWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUUvQixNQUFhLHVCQUF1QjtJQUFwQztRQUNVLGVBQVUsR0FBRyxDQUFDLENBQUE7UUFDZCxhQUFRLEdBQUcsQ0FBQyxDQUFBO1FBQ1osZUFBVSxHQUFHLENBQUMsQ0FBQTtRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUNoQixpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUNoQixjQUFTLEdBQUcsQ0FBQyxDQUFBO1FBQ2IsUUFBRyxHQUFHLENBQUMsQ0FBQTtJQW9GakIsQ0FBQztJQWxGQyxRQUFRLENBQUMsS0FBZTtRQUN0QixJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUE7SUFDMUIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxRQUFnQixFQUFFLElBQWE7UUFDN0MsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsU0FBUyxRQUFRLEVBQUUsQ0FBQTtRQUNoRSxDQUFDO1FBRUQsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsU0FBUyxRQUFRLEVBQUUsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWdCO1FBQ3BCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FDSCxRQUFnQixFQUNoQixPQUE0QyxFQUM1QyxhQUFpRTtRQUVqRSxJQUFJLGFBQWEsS0FBSyxjQUFjLElBQUksYUFBYSxLQUFL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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "build-raptor",
3
- "version": "0.117.0",
3
+ "version": "0.119.0",
4
4
  "description": "CLI for super-fast monorepo builds",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -18,7 +18,7 @@
18
18
  "@aws-sdk/client-s3": "^3.623.0",
19
19
  "aws-sdk": "^2.1667.0",
20
20
  "build-raptor-dynamic-loader": "^0.62.0",
21
- "build-raptor-jest-reporter": "0.117.0",
21
+ "build-raptor-jest-reporter": "0.119.0",
22
22
  "escape-string-regexp": "^4.0.0",
23
23
  "execa": "^5.0.0",
24
24
  "fs-extra": "^9.0.0",