@nrwl/nx-cloud 15.0.2-beta.1 → 15.0.3

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 (30) hide show
  1. package/lib/core/api/error-reporter.api.js +1 -36
  2. package/lib/core/api/run-group.api.js +1 -68
  3. package/lib/core/commands/clean-up-agents.js +1 -1
  4. package/lib/core/commands/clean-up-agents.js.map +1 -1
  5. package/lib/core/commands/upload-and-show-run-details.js +1 -1
  6. package/lib/core/commands/upload-and-show-run-details.js.map +1 -1
  7. package/lib/core/error/print-invalid-runner-error.d.ts +1 -0
  8. package/lib/core/error/print-invalid-runner-error.js +17 -0
  9. package/lib/core/error/print-invalid-runner-error.js.map +1 -0
  10. package/lib/core/runners/cloud-enabled/cloud-enabled-life-cycle.js +1 -109
  11. package/lib/core/runners/cloud-enabled/cloud-enabled.runner.js +1 -288
  12. package/lib/core/runners/cloud-enabled/cloud-enabled.runner.js.map +1 -1
  13. package/lib/core/runners/cloud-enabled/cloud-remote-cache.js +1 -113
  14. package/lib/core/runners/cloud-enabled/cloud-run.api.js +1 -167
  15. package/lib/core/runners/cloud-enabled/id-generator.js +1 -16
  16. package/lib/core/runners/distributed-agent/distributed-agent.api.js +1 -79
  17. package/lib/core/runners/distributed-agent/distributed-agent.impl.js +1 -263
  18. package/lib/core/runners/distributed-agent/distributed-agent.impl.js.map +1 -1
  19. package/lib/core/runners/distributed-execution/distributed-execution.api.js +1 -143
  20. package/lib/core/runners/distributed-execution/distributed-execution.runner.js +1 -220
  21. package/lib/core/runners/distributed-execution/distributed-execution.runner.js.map +1 -1
  22. package/lib/core/runners/distributed-execution/split-task-graph-into-stages.js +1 -37
  23. package/lib/core/runners/distributed-execution/task-graph-creator.js +1 -77
  24. package/lib/utilities/distributed-task-execution-detection.js +1 -1
  25. package/lib/utilities/distributed-task-execution-detection.js.map +1 -1
  26. package/lib/utilities/environment.d.ts +2 -0
  27. package/lib/utilities/environment.js +18 -10
  28. package/lib/utilities/environment.js.map +1 -1
  29. package/package.json +1 -1
  30. package/project.json +2 -1
@@ -1,36 +1 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ErrorReporterApi = void 0;
13
- const axios_1 = require("../../utilities/axios");
14
- const { output } = require('../../utilities/nx-imports');
15
- class ErrorReporterApi {
16
- constructor(options) {
17
- this.apiAxiosInstance = (0, axios_1.createApiAxiosInstance)(options);
18
- }
19
- reportError(message) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- try {
22
- yield (0, axios_1.axiosMultipleTries)(() => this.apiAxiosInstance.post('/nx-cloud/report-client-error', {
23
- message,
24
- }));
25
- }
26
- catch (e) {
27
- output.warn({
28
- title: `Unable to record the following error: '${message}'`,
29
- bodyLines: [e.message],
30
- });
31
- }
32
- });
33
- }
34
- }
35
- exports.ErrorReporterApi = ErrorReporterApi;
36
- //# sourceMappingURL=error-reporter.api.js.map
1
+ const a0_0x2db2=['apiAxiosInstance','value','../../utilities/nx-imports','createApiAxiosInstance','ErrorReporterApi','__esModule','done','throw','__awaiter','reportError','warn','then','next'];(function(_0x3d7c8f,_0x2db20f){const _0x989221=function(_0x30f38a){while(--_0x30f38a){_0x3d7c8f['push'](_0x3d7c8f['shift']());}};_0x989221(++_0x2db20f);}(a0_0x2db2,0x166));const a0_0x9892=function(_0x3d7c8f,_0x2db20f){_0x3d7c8f=_0x3d7c8f-0x0;let _0x989221=a0_0x2db2[_0x3d7c8f];return _0x989221;};'use strict';var __awaiter=this&&this[a0_0x9892('0x1')]||function(_0x34b200,_0x332a08,_0x290d3e,_0x103d95){function _0x44bcce(_0x4c239b){return _0x4c239b instanceof _0x290d3e?_0x4c239b:new _0x290d3e(function(_0x46f252){_0x46f252(_0x4c239b);});}return new(_0x290d3e||(_0x290d3e=Promise))(function(_0x5c9a6b,_0x276606){function _0x131a14(_0x46c84b){try{_0x2fc12d(_0x103d95[a0_0x9892('0x5')](_0x46c84b));}catch(_0x46538a){_0x276606(_0x46538a);}}function _0x4cd306(_0x64f2cf){try{_0x2fc12d(_0x103d95[a0_0x9892('0x0')](_0x64f2cf));}catch(_0xde5894){_0x276606(_0xde5894);}}function _0x2fc12d(_0x34799b){_0x34799b[a0_0x9892('0xc')]?_0x5c9a6b(_0x34799b['value']):_0x44bcce(_0x34799b[a0_0x9892('0x7')])[a0_0x9892('0x4')](_0x131a14,_0x4cd306);}_0x2fc12d((_0x103d95=_0x103d95['apply'](_0x34b200,_0x332a08||[]))['next']());});};Object['defineProperty'](exports,a0_0x9892('0xb'),{'value':!![]});exports[a0_0x9892('0xa')]=void 0x0;const axios_1=require('../../utilities/axios');const {output}=require(a0_0x9892('0x8'));class ErrorReporterApi{constructor(_0x3d9c2b){this[a0_0x9892('0x6')]=(0x0,axios_1[a0_0x9892('0x9')])(_0x3d9c2b);}[a0_0x9892('0x2')](_0x4af54c){return __awaiter(this,void 0x0,void 0x0,function*(){try{yield(0x0,axios_1['axiosMultipleTries'])(()=>this[a0_0x9892('0x6')]['post']('/nx-cloud/report-client-error',{'message':_0x4af54c}));}catch(_0x3f613a){output[a0_0x9892('0x3')]({'title':'Unable\x20to\x20record\x20the\x20following\x20error:\x20\x27'+_0x4af54c+'\x27','bodyLines':[_0x3f613a['message']]});}});}}exports[a0_0x9892('0xa')]=ErrorReporterApi;
@@ -1,68 +1 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RunGroupApi = void 0;
13
- const axios_1 = require("../../utilities/axios");
14
- const metric_logger_1 = require("../../utilities/metric-logger");
15
- const { output } = require('../../utilities/nx-imports');
16
- class RunGroupApi {
17
- constructor(options) {
18
- this.apiAxiosInstance = (0, axios_1.createApiAxiosInstance)(options);
19
- }
20
- createRunGroup(branch, runGroup, stopAgentsOnFailure, agentCount, stopAgentsAfter) {
21
- var _a;
22
- return __awaiter(this, void 0, void 0, function* () {
23
- const recorder = (0, metric_logger_1.createMetricRecorder)('createRunGroup');
24
- try {
25
- const resp = yield (0, axios_1.axiosMultipleTries)(() => this.apiAxiosInstance.post('/nx-cloud/executions/create-run-group', {
26
- branch,
27
- runGroup,
28
- stopAgentsOnFailure,
29
- agentCount,
30
- stopAgentsAfter,
31
- }));
32
- recorder.recordMetric((0, metric_logger_1.mapRespToPerfEntry)(resp));
33
- }
34
- catch (e) {
35
- recorder.recordMetric(((_a = e === null || e === void 0 ? void 0 : e.axiosException) === null || _a === void 0 ? void 0 : _a.response)
36
- ? (0, metric_logger_1.mapRespToPerfEntry)(e.axiosException.response)
37
- : metric_logger_1.RUNNER_FAILURE_PERF_ENTRY);
38
- output.error({
39
- title: e.message,
40
- });
41
- process.exit(1);
42
- }
43
- });
44
- }
45
- completeRunGroup(runGroup) {
46
- var _a;
47
- return __awaiter(this, void 0, void 0, function* () {
48
- const recorder = (0, metric_logger_1.createMetricRecorder)('createRunGroup');
49
- try {
50
- const resp = yield (0, axios_1.axiosMultipleTries)(() => this.apiAxiosInstance.post('/nx-cloud/executions/complete-run-group', {
51
- runGroup: runGroup,
52
- }));
53
- recorder.recordMetric((0, metric_logger_1.mapRespToPerfEntry)(resp));
54
- }
55
- catch (e) {
56
- recorder.recordMetric(((_a = e === null || e === void 0 ? void 0 : e.axiosException) === null || _a === void 0 ? void 0 : _a.response)
57
- ? (0, metric_logger_1.mapRespToPerfEntry)(e.axiosException.response)
58
- : metric_logger_1.RUNNER_FAILURE_PERF_ENTRY);
59
- output.error({
60
- title: e.message,
61
- });
62
- process.exit(1);
63
- }
64
- });
65
- }
66
- }
67
- exports.RunGroupApi = RunGroupApi;
68
- //# sourceMappingURL=run-group.api.js.map
1
+ const a1_0x4727=['throw','value','createRunGroup','response','createMetricRecorder','exit','axiosMultipleTries','../../utilities/nx-imports','apply','/nx-cloud/executions/create-run-group','apiAxiosInstance','post','axiosException','mapRespToPerfEntry','RunGroupApi','__esModule','error','createApiAxiosInstance','RUNNER_FAILURE_PERF_ENTRY','defineProperty','done','message','recordMetric','/nx-cloud/executions/complete-run-group'];(function(_0x1f8505,_0x47276c){const _0x4d71de=function(_0x55f037){while(--_0x55f037){_0x1f8505['push'](_0x1f8505['shift']());}};_0x4d71de(++_0x47276c);}(a1_0x4727,0xe8));const a1_0x4d71=function(_0x1f8505,_0x47276c){_0x1f8505=_0x1f8505-0x0;let _0x4d71de=a1_0x4727[_0x1f8505];return _0x4d71de;};'use strict';var __awaiter=this&&this['__awaiter']||function(_0x117dc6,_0x3cf067,_0x1b06d6,_0x1b8423){function _0x24e95c(_0x45ff36){return _0x45ff36 instanceof _0x1b06d6?_0x45ff36:new _0x1b06d6(function(_0x5b2462){_0x5b2462(_0x45ff36);});}return new(_0x1b06d6||(_0x1b06d6=Promise))(function(_0x3adee0,_0x5dfece){function _0x59e57a(_0x3e9124){try{_0x2ed0f0(_0x1b8423['next'](_0x3e9124));}catch(_0x2cbca2){_0x5dfece(_0x2cbca2);}}function _0x109d5e(_0x3516c9){try{_0x2ed0f0(_0x1b8423[a1_0x4d71('0x8')](_0x3516c9));}catch(_0x92f689){_0x5dfece(_0x92f689);}}function _0x2ed0f0(_0x148628){_0x148628[a1_0x4d71('0x4')]?_0x3adee0(_0x148628[a1_0x4d71('0x9')]):_0x24e95c(_0x148628[a1_0x4d71('0x9')])['then'](_0x59e57a,_0x109d5e);}_0x2ed0f0((_0x1b8423=_0x1b8423[a1_0x4d71('0x10')](_0x117dc6,_0x3cf067||[]))['next']());});};Object[a1_0x4d71('0x3')](exports,a1_0x4d71('0x17'),{'value':!![]});exports['RunGroupApi']=void 0x0;const axios_1=require('../../utilities/axios');const metric_logger_1=require('../../utilities/metric-logger');const {output}=require(a1_0x4d71('0xf'));class RunGroupApi{constructor(_0x573f27){this[a1_0x4d71('0x12')]=(0x0,axios_1[a1_0x4d71('0x1')])(_0x573f27);}[a1_0x4d71('0xa')](_0x4741e0,_0x221ce9,_0x3a4528,_0x17e5f2,_0x3b263f){var _0x1f4025;return __awaiter(this,void 0x0,void 0x0,function*(){const _0x42f7fd=(0x0,metric_logger_1[a1_0x4d71('0xc')])('createRunGroup');try{const _0x16cbd9=yield(0x0,axios_1[a1_0x4d71('0xe')])(()=>this[a1_0x4d71('0x12')][a1_0x4d71('0x13')](a1_0x4d71('0x11'),{'branch':_0x4741e0,'runGroup':_0x221ce9,'stopAgentsOnFailure':_0x3a4528,'agentCount':_0x17e5f2,'stopAgentsAfter':_0x3b263f}));_0x42f7fd[a1_0x4d71('0x6')]((0x0,metric_logger_1[a1_0x4d71('0x15')])(_0x16cbd9));}catch(_0x3f7af4){_0x42f7fd[a1_0x4d71('0x6')](((_0x1f4025=_0x3f7af4===null||_0x3f7af4===void 0x0?void 0x0:_0x3f7af4[a1_0x4d71('0x14')])===null||_0x1f4025===void 0x0?void 0x0:_0x1f4025[a1_0x4d71('0xb')])?(0x0,metric_logger_1[a1_0x4d71('0x15')])(_0x3f7af4[a1_0x4d71('0x14')][a1_0x4d71('0xb')]):metric_logger_1[a1_0x4d71('0x2')]);output[a1_0x4d71('0x0')]({'title':_0x3f7af4[a1_0x4d71('0x5')]});process[a1_0x4d71('0xd')](0x1);}});}['completeRunGroup'](_0x23ddd8){var _0x366f7a;return __awaiter(this,void 0x0,void 0x0,function*(){const _0x308007=(0x0,metric_logger_1[a1_0x4d71('0xc')])(a1_0x4d71('0xa'));try{const _0x292b84=yield(0x0,axios_1[a1_0x4d71('0xe')])(()=>this[a1_0x4d71('0x12')][a1_0x4d71('0x13')](a1_0x4d71('0x7'),{'runGroup':_0x23ddd8}));_0x308007[a1_0x4d71('0x6')]((0x0,metric_logger_1[a1_0x4d71('0x15')])(_0x292b84));}catch(_0x4cceb5){_0x308007[a1_0x4d71('0x6')](((_0x366f7a=_0x4cceb5===null||_0x4cceb5===void 0x0?void 0x0:_0x4cceb5[a1_0x4d71('0x14')])===null||_0x366f7a===void 0x0?void 0x0:_0x366f7a['response'])?(0x0,metric_logger_1[a1_0x4d71('0x15')])(_0x4cceb5[a1_0x4d71('0x14')][a1_0x4d71('0xb')]):metric_logger_1['RUNNER_FAILURE_PERF_ENTRY']);output['error']({'title':_0x4cceb5['message']});process['exit'](0x1);}});}}exports[a1_0x4d71('0x16')]=RunGroupApi;
@@ -17,7 +17,7 @@ const { output, workspaceRoot } = require('../../utilities/nx-imports');
17
17
  function cleanUpAgents() {
18
18
  return __awaiter(this, void 0, void 0, function* () {
19
19
  const options = JSON.parse(stripJsonComments((0, fs_1.readFileSync)(`${workspaceRoot}/nx.json`).toString())).tasksRunnerOptions.default.options;
20
- const cacheDirectory = options.cacheDirectory || './node_modules/.cache/nx';
20
+ const cacheDirectory = (0, environment_1.getNxCacheDirectory)(options);
21
21
  const lockFileDirectory = `${cacheDirectory}/lockfiles`;
22
22
  if (environment_1.VERBOSE_LOGGING) {
23
23
  output.note({
@@ -1 +1 @@
1
- {"version":3,"file":"clean-up-agents.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/commands/clean-up-agents.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyD;AACzD,6DAA8D;AAC9D,2BAAsC;AAEtC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAExE,SAAsB,aAAa;;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,iBAAiB,CAAC,IAAA,iBAAY,EAAC,GAAG,aAAa,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CACvE,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,0BAA0B,CAAC;QAC5E,MAAM,iBAAiB,GAAG,GAAG,cAAc,YAAY,CAAC;QAExD,IAAI,6BAAe,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,gDAAgD;aACxD,CAAC,CAAC;SACJ;QAED,OAAO,IAAA,OAAE,EAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CAAA;AAhBD,sCAgBC"}
1
+ {"version":3,"file":"clean-up-agents.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/commands/clean-up-agents.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyD;AACzD,6DAGqC;AACrC,2BAAsC;AAEtC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAExE,SAAsB,aAAa;;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,iBAAiB,CAAC,IAAA,iBAAY,EAAC,GAAG,aAAa,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CACvE,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,MAAM,cAAc,GAAG,IAAA,iCAAmB,EAAC,OAAO,CAAC,CAAC;QACpD,MAAM,iBAAiB,GAAG,GAAG,cAAc,YAAY,CAAC;QAExD,IAAI,6BAAe,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,gDAAgD;aACxD,CAAC,CAAC;SACJ;QAED,OAAO,IAAA,OAAE,EAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CAAA;AAhBD,sCAgBC"}
@@ -26,7 +26,7 @@ function uploadRunDetails(options) {
26
26
  const runContext = {};
27
27
  const machineInfo = (0, environment_1.getMachineInfo)(options);
28
28
  const api = new cloud_run_api_1.CloudRunApi(errors, runContext, options, machineInfo);
29
- const directory = options.cacheDirectory || './node_modules/.cache/nx';
29
+ const directory = (0, environment_1.getNxCacheDirectory)(options);
30
30
  const outputObfusactor = new output_obfuscator_1.OutputObfuscator(options.maskedProperties);
31
31
  const runInfo = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(directory, 'run.json')).toString());
32
32
  // we need to connect to cloud if not connected yet
@@ -1 +1 @@
1
- {"version":3,"file":"upload-and-show-run-details.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/commands/upload-and-show-run-details.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAA6D;AAC7D,0EAAqE;AACrE,0EAAsE;AACtE,2BAAkC;AAClC,+BAA4B;AAC5B,wEAA6E;AAC7E,6BAA6B;AAC7B,4FAAsF;AACtF,4EAAwE;AAExE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAExE,SAAe,gBAAgB,CAAC,OAAY;;QAC1C,MAAM,MAAM,GAAG,IAAI,kCAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,EAAS,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,4BAAc,EAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,2BAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,IAAI,0BAA0B,CAAC;QACvE,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAExE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CACrD,CAAC;QAEF,mDAAmD;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCAClC,CAAC,KACJ,cAAc,EAAE,IAAA,kDAAsB,EACpC,SAAS,EACT,gBAAgB,EAChB,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,MAAM,CACT,IACD,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,IAAA,mCAAoB,GAAE,CAAC;QACtC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,gBAAgB,SAAS,MAAM,EAAE,CAAC;IAC7D,CAAC;CAAA;AAED,SAAsB,uBAAuB;;QAC3C,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC;YACb,KAAK,EAAE,uCAAuC;YAC9C,SAAS,EAAE,CAAC,uBAAuB,GAAG,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;CAAA;AARD,0DAQC;AAED,SAAS,WAAW;;IAClB,IAAI;QACF,OAAO,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,0CACtE,kBAAkB,0CAAE,OAAO,0CAAE,OAAO,CAAC;KAC1C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAC;KACX;AACH,CAAC"}
1
+ {"version":3,"file":"upload-and-show-run-details.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/commands/upload-and-show-run-details.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAGqC;AACrC,0EAAqE;AACrE,0EAAsE;AACtE,2BAAkC;AAClC,+BAA4B;AAC5B,wEAA6E;AAC7E,6BAA6B;AAC7B,4FAAsF;AACtF,4EAAwE;AAExE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAExE,SAAe,gBAAgB,CAAC,OAAY;;QAC1C,MAAM,MAAM,GAAG,IAAI,kCAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,EAAS,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,4BAAc,EAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,2BAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAG,IAAA,iCAAmB,EAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAExE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CACrD,CAAC;QAEF,mDAAmD;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCAClC,CAAC,KACJ,cAAc,EAAE,IAAA,kDAAsB,EACpC,SAAS,EACT,gBAAgB,EAChB,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,MAAM,CACT,IACD,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,IAAA,mCAAoB,GAAE,CAAC;QACtC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,gBAAgB,SAAS,MAAM,EAAE,CAAC;IAC7D,CAAC;CAAA;AAED,SAAsB,uBAAuB;;QAC3C,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC;YACb,KAAK,EAAE,uCAAuC;YAC9C,SAAS,EAAE,CAAC,uBAAuB,GAAG,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;CAAA;AARD,0DAQC;AAED,SAAS,WAAW;;IAClB,IAAI;QACF,OAAO,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,0CACtE,kBAAkB,0CAAE,OAAO,0CAAE,OAAO,CAAC;KAC1C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAC;KACX;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function printInvalidRunnerError(): void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printInvalidRunnerError = void 0;
4
+ const { output } = require('../../utilities/nx-imports');
5
+ function printInvalidRunnerError() {
6
+ output.error({
7
+ title: `Invalid Task Runner Configuration`,
8
+ bodyLines: [
9
+ 'To use Distributed Task Execution, your default task runner configuration must',
10
+ 'use the "@nrwl/nx-cloud" task runner.',
11
+ '',
12
+ 'This can be adjusted in "nx.json".',
13
+ ],
14
+ });
15
+ }
16
+ exports.printInvalidRunnerError = printInvalidRunnerError;
17
+ //# sourceMappingURL=print-invalid-runner-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-invalid-runner-error.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/error/print-invalid-runner-error.ts"],"names":[],"mappings":";;;AAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAEzD,SAAgB,uBAAuB;IACrC,MAAM,CAAC,KAAK,CAAC;QACX,KAAK,EAAE,mCAAmC;QAC1C,SAAS,EAAE;YACT,gFAAgF;YAChF,uCAAuC;YACvC,EAAE;YACF,oCAAoC;SACrC;KACF,CAAC,CAAC;AACL,CAAC;AAVD,0DAUC"}
@@ -1,109 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CloudEnabledLifeCycle = void 0;
4
- const serializer_overrides_1 = require("../../../utilities/serializer-overrides");
5
- const read_task_terminal_output_1 = require("../../terminal-output/read-task-terminal-output");
6
- const { workspaceRoot } = require('../../../utilities/nx-imports');
7
- class CloudEnabledLifeCycle {
8
- constructor(runContext, cacheDirectory, skipNxCache, collectTerminalOutput, cacheableOperations, outputObfuscator, tasks) {
9
- this.runContext = runContext;
10
- this.cacheDirectory = cacheDirectory;
11
- this.skipNxCache = skipNxCache;
12
- this.collectTerminalOutput = collectTerminalOutput;
13
- this.cacheableOperations = cacheableOperations;
14
- this.outputObfuscator = outputObfuscator;
15
- this.tasks = tasks;
16
- }
17
- scheduleTask(task) {
18
- this.runContext.scheduledTasks.push(task);
19
- }
20
- startTask(task) {
21
- this.tasks.push({
22
- taskId: task.id,
23
- startTime: new Date().toISOString(),
24
- target: task.target.target,
25
- projectName: task.target.project,
26
- hash: task.hash,
27
- hashDetails: this.cleanUpHashDetails(task.hashDetails),
28
- params: (0, serializer_overrides_1.serializeOverrides)(task),
29
- });
30
- }
31
- // Used for older version for Nx. Remove in Dec 2022
32
- endTask(task, code) {
33
- let cacheStatus;
34
- if (this.runContext.statuses[task.hash]) {
35
- cacheStatus = this.runContext.statuses[task.hash];
36
- }
37
- else {
38
- if (this.cacheableOperations.indexOf(task.target.target) > -1 &&
39
- !this.skipNxCache) {
40
- cacheStatus = 'local-cache-hit';
41
- }
42
- else {
43
- cacheStatus = 'cache-miss';
44
- }
45
- }
46
- this.updateStartedTask(task, code, cacheStatus);
47
- }
48
- endTasks(tasks) {
49
- for (let t of tasks) {
50
- let cacheStatus;
51
- const taskIsRemoteCacheHit = t.status === 'remote-cache';
52
- const taskIsLocalCacheHitPreNx135 = t.status === 'cache';
53
- const taskIsLocalCacheHit = t.status === 'local-cache' ||
54
- t.status === 'local-cache-kept-existing' ||
55
- taskIsLocalCacheHitPreNx135;
56
- if (this.runContext.statuses[t.task.hash]) {
57
- cacheStatus = this.runContext.statuses[t.task.hash];
58
- }
59
- else if (taskIsRemoteCacheHit) {
60
- cacheStatus = 'remote-cache-hit';
61
- }
62
- else if (taskIsLocalCacheHit) {
63
- cacheStatus = 'local-cache-hit';
64
- }
65
- else {
66
- if (this.cacheableOperations.indexOf(t.task.target.target) > -1 &&
67
- !this.skipNxCache) {
68
- cacheStatus = 'local-cache-hit';
69
- }
70
- else {
71
- cacheStatus = 'cache-miss';
72
- }
73
- }
74
- this.updateStartedTask(t.task, t.code, cacheStatus);
75
- }
76
- }
77
- endCommand() { }
78
- updateStartedTask(task, code, cacheStatus) {
79
- const startedTask = this.tasks.find((t) => t.taskId === task.id);
80
- if (!startedTask) {
81
- throw new Error(`Cannot find task ${task.id}`);
82
- }
83
- startedTask.endTime = new Date().toISOString();
84
- startedTask.status = code;
85
- startedTask.params = this.outputObfuscator.obfuscate(startedTask.params);
86
- startedTask.cacheStatus = cacheStatus;
87
- if (this.collectTerminalOutput) {
88
- startedTask.terminalOutput = this.getTerminalOutput(task.hash, startedTask.cacheStatus, code);
89
- }
90
- }
91
- getTerminalOutput(hash, cacheStatus, code) {
92
- return (0, read_task_terminal_output_1.readTaskTerminalOutput)(this.cacheDirectory, this.outputObfuscator, hash, cacheStatus, code);
93
- }
94
- cleanUpHashDetails(hashDetails) {
95
- const nodes = {};
96
- Object.keys(hashDetails.nodes)
97
- .filter((k) => !k.startsWith('npm:'))
98
- .forEach((k) => {
99
- nodes[k] = hashDetails.nodes[k];
100
- });
101
- return {
102
- nodes,
103
- runtime: hashDetails.runtime,
104
- implicitDeps: hashDetails.implicitDeps,
105
- };
106
- }
107
- }
108
- exports.CloudEnabledLifeCycle = CloudEnabledLifeCycle;
109
- //# sourceMappingURL=cloud-enabled-life-cycle.js.map
1
+ const a0_0x274b=['skipNxCache','runContext','cache-miss','cacheStatus','keys','getTerminalOutput','code','endTasks','params','startTask','endTask','local-cache','collectTerminalOutput','cleanUpHashDetails','cache','endCommand','project','taskId','CloudEnabledLifeCycle','nodes','Cannot\x20find\x20task\x20','forEach','task','remote-cache-hit','../../../utilities/serializer-overrides','toISOString','defineProperty','obfuscate','remote-cache','status','push','scheduledTasks','terminalOutput','runtime','cacheableOperations','target','../../../utilities/nx-imports','readTaskTerminalOutput','updateStartedTask','local-cache-hit','cacheDirectory','tasks','statuses','hash','../../terminal-output/read-task-terminal-output','scheduleTask','outputObfuscator','indexOf'];(function(_0xa77b2c,_0x274bff){const _0xb63bc3=function(_0x3d287b){while(--_0x3d287b){_0xa77b2c['push'](_0xa77b2c['shift']());}};_0xb63bc3(++_0x274bff);}(a0_0x274b,0x8f));const a0_0xb63b=function(_0xa77b2c,_0x274bff){_0xa77b2c=_0xa77b2c-0x0;let _0xb63bc3=a0_0x274b[_0xa77b2c];return _0xb63bc3;};'use strict';Object[a0_0xb63b('0x1b')](exports,'__esModule',{'value':!![]});exports[a0_0xb63b('0x13')]=void 0x0;const serializer_overrides_1=require(a0_0xb63b('0x19'));const read_task_terminal_output_1=require(a0_0xb63b('0x2d'));const {workspaceRoot}=require(a0_0xb63b('0x25'));class CloudEnabledLifeCycle{constructor(_0x3d42d9,_0x266b02,_0x1fdb3a,_0x21d8f7,_0x36d04a,_0xf94cab,_0x4e6f29){this[a0_0xb63b('0x2')]=_0x3d42d9;this[a0_0xb63b('0x29')]=_0x266b02;this[a0_0xb63b('0x1')]=_0x1fdb3a;this['collectTerminalOutput']=_0x21d8f7;this[a0_0xb63b('0x23')]=_0x36d04a;this[a0_0xb63b('0x2f')]=_0xf94cab;this['tasks']=_0x4e6f29;}[a0_0xb63b('0x2e')](_0x28c49d){this['runContext'][a0_0xb63b('0x20')][a0_0xb63b('0x1f')](_0x28c49d);}[a0_0xb63b('0xa')](_0x1fc8ce){this[a0_0xb63b('0x2a')][a0_0xb63b('0x1f')]({'taskId':_0x1fc8ce['id'],'startTime':new Date()[a0_0xb63b('0x1a')](),'target':_0x1fc8ce[a0_0xb63b('0x24')]['target'],'projectName':_0x1fc8ce[a0_0xb63b('0x24')][a0_0xb63b('0x11')],'hash':_0x1fc8ce['hash'],'hashDetails':this['cleanUpHashDetails'](_0x1fc8ce['hashDetails']),'params':(0x0,serializer_overrides_1['serializeOverrides'])(_0x1fc8ce)});}[a0_0xb63b('0xb')](_0x4c6759,_0x220ed9){let _0x151a63;if(this[a0_0xb63b('0x2')][a0_0xb63b('0x2b')][_0x4c6759[a0_0xb63b('0x2c')]]){_0x151a63=this[a0_0xb63b('0x2')][a0_0xb63b('0x2b')][_0x4c6759['hash']];}else{if(this[a0_0xb63b('0x23')]['indexOf'](_0x4c6759[a0_0xb63b('0x24')][a0_0xb63b('0x24')])>-0x1&&!this[a0_0xb63b('0x1')]){_0x151a63=a0_0xb63b('0x28');}else{_0x151a63=a0_0xb63b('0x3');}}this[a0_0xb63b('0x27')](_0x4c6759,_0x220ed9,_0x151a63);}[a0_0xb63b('0x8')](_0x1cfdb0){for(let _0x221107 of _0x1cfdb0){let _0x1fb41f;const _0x2e2957=_0x221107[a0_0xb63b('0x1e')]===a0_0xb63b('0x1d');const _0x1288ef=_0x221107['status']===a0_0xb63b('0xf');const _0x1bdcd3=_0x221107[a0_0xb63b('0x1e')]===a0_0xb63b('0xc')||_0x221107['status']==='local-cache-kept-existing'||_0x1288ef;if(this['runContext']['statuses'][_0x221107[a0_0xb63b('0x17')][a0_0xb63b('0x2c')]]){_0x1fb41f=this[a0_0xb63b('0x2')][a0_0xb63b('0x2b')][_0x221107[a0_0xb63b('0x17')][a0_0xb63b('0x2c')]];}else if(_0x2e2957){_0x1fb41f=a0_0xb63b('0x18');}else if(_0x1bdcd3){_0x1fb41f=a0_0xb63b('0x28');}else{if(this[a0_0xb63b('0x23')][a0_0xb63b('0x0')](_0x221107[a0_0xb63b('0x17')][a0_0xb63b('0x24')][a0_0xb63b('0x24')])>-0x1&&!this['skipNxCache']){_0x1fb41f=a0_0xb63b('0x28');}else{_0x1fb41f=a0_0xb63b('0x3');}}this[a0_0xb63b('0x27')](_0x221107[a0_0xb63b('0x17')],_0x221107[a0_0xb63b('0x7')],_0x1fb41f);}}[a0_0xb63b('0x10')](){}['updateStartedTask'](_0x2956e9,_0x4a2b76,_0x5dac60){const _0x40153a=this['tasks']['find'](_0x16fc38=>_0x16fc38[a0_0xb63b('0x12')]===_0x2956e9['id']);if(!_0x40153a){throw new Error(a0_0xb63b('0x15')+_0x2956e9['id']);}_0x40153a['endTime']=new Date()[a0_0xb63b('0x1a')]();_0x40153a['status']=_0x4a2b76;_0x40153a[a0_0xb63b('0x9')]=this[a0_0xb63b('0x2f')][a0_0xb63b('0x1c')](_0x40153a[a0_0xb63b('0x9')]);_0x40153a[a0_0xb63b('0x4')]=_0x5dac60;if(this[a0_0xb63b('0xd')]){_0x40153a[a0_0xb63b('0x21')]=this[a0_0xb63b('0x6')](_0x2956e9['hash'],_0x40153a[a0_0xb63b('0x4')],_0x4a2b76);}}[a0_0xb63b('0x6')](_0x5e99e9,_0xcdafe4,_0x46825b){return(0x0,read_task_terminal_output_1[a0_0xb63b('0x26')])(this['cacheDirectory'],this['outputObfuscator'],_0x5e99e9,_0xcdafe4,_0x46825b);}[a0_0xb63b('0xe')](_0x34a131){const _0x55a3ee={};Object[a0_0xb63b('0x5')](_0x34a131['nodes'])['filter'](_0x5372d5=>!_0x5372d5['startsWith']('npm:'))[a0_0xb63b('0x16')](_0x450e09=>{_0x55a3ee[_0x450e09]=_0x34a131[a0_0xb63b('0x14')][_0x450e09];});return{'nodes':_0x55a3ee,'runtime':_0x34a131[a0_0xb63b('0x22')],'implicitDeps':_0x34a131['implicitDeps']};}}exports['CloudEnabledLifeCycle']=CloudEnabledLifeCycle;
@@ -1,288 +1 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.cloudEnabledTasksRunner = void 0;
13
- const message_reporter_1 = require("../../terminal-output/message-reporter");
14
- const end_of_run_message_1 = require("../../terminal-output/end-of-run-message");
15
- const output_obfuscator_1 = require("../../terminal-output/output-obfuscator");
16
- const cloud_enabled_life_cycle_1 = require("./cloud-enabled-life-cycle");
17
- const file_storage_1 = require("../../file-storage/file-storage");
18
- const e2e_encryption_1 = require("../../file-storage/e2e-encryption");
19
- const environment_1 = require("../../../utilities/environment");
20
- const cloud_remote_cache_1 = require("./cloud-remote-cache");
21
- const cloud_run_api_1 = require("./cloud-run.api");
22
- const fs_1 = require("fs");
23
- const path = require("path");
24
- const metric_logger_1 = require("../../../utilities/metric-logger");
25
- const error_reporter_api_1 = require("../../api/error-reporter.api");
26
- const path_1 = require("path");
27
- const fs_extra_1 = require("fs-extra");
28
- const id_generator_1 = require("./id-generator");
29
- const { tasksRunner, output, Cache } = require('../../../utilities/nx-imports');
30
- function createApi(errors, options, runContext) {
31
- const machineInfo = (0, environment_1.getMachineInfo)(options);
32
- return new cloud_run_api_1.CloudRunApi(errors, runContext, options, machineInfo);
33
- }
34
- function storeTaskHashes(taskExecutions, directory, distributedExecutionId) {
35
- const hashes = JSON.stringify(taskExecutions.map((t) => ({
36
- taskId: t.taskId,
37
- hash: t.hash,
38
- })));
39
- if (environment_1.VERBOSE_LOGGING) {
40
- output.note({
41
- title: `Executed tasks with hashes: ${hashes}`,
42
- });
43
- }
44
- (0, fs_1.writeFileSync)(path.join(directory, `tasks-hashes-${distributedExecutionId}`), hashes);
45
- }
46
- function onComplete({ daemon, lifeCycle, options, remoteCache, api, outputObfuscator, runStartTime, messages, endOfRunMessage, taskExecutions, versionOfNxBefore133, inner, encryptionKey, fileStorage, uploadInCurrentProcess, runContext, }) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- const runEndTime = new Date().toISOString();
49
- const branch = (0, environment_1.getBranch)();
50
- const runData = {
51
- command: outputObfuscator.obfuscate((0, environment_1.parseCommand)()),
52
- startTime: runStartTime,
53
- endTime: runEndTime,
54
- distributedExecutionId: environment_1.NX_CLOUD_DISTRIBUTED_EXECUTION_ID,
55
- branch: branch,
56
- scan: true,
57
- runGroup: (0, environment_1.getRunGroup)(),
58
- // only set sha if branch is set because we invoke a separate process,
59
- // which adds a few millis
60
- sha: branch ? (0, environment_1.extractGitSha)() : undefined,
61
- inner: inner,
62
- };
63
- if (uploadInCurrentProcess) {
64
- if (environment_1.AGENT_RUNNING_IN_DISTRIBUTED_EXECUTION) {
65
- storeTaskHashes(taskExecutions, options.cacheDirectory || './node_modules/.cache/nx', environment_1.NX_CLOUD_DISTRIBUTED_EXECUTION_ID);
66
- }
67
- try {
68
- yield remoteCache.waitForStoreRequestsToComplete();
69
- }
70
- catch (e) {
71
- output.error({
72
- title: `Nx Cloud wasn't able to store artifacts.`,
73
- });
74
- messages.printMessages();
75
- process.exit(environment_1.DISTRIBUTED_TASK_EXECUTION_INTERNAL_ERROR_STATUS_CODE);
76
- }
77
- try {
78
- yield api.endRun(runData, taskExecutions);
79
- }
80
- catch (e) {
81
- output.error({
82
- title: `Nx Cloud wasn't able to record its run.`,
83
- });
84
- messages.printMessages();
85
- process.exit(environment_1.DISTRIBUTED_TASK_EXECUTION_INTERNAL_ERROR_STATUS_CODE);
86
- }
87
- yield (0, metric_logger_1.submitRunMetrics)(options);
88
- }
89
- else {
90
- try {
91
- const accessToken = environment_1.ACCESS_TOKEN ? environment_1.ACCESS_TOKEN : options.accessToken;
92
- const linkId = (0, id_generator_1.generateUniqueLinkId)();
93
- yield daemon.processInBackground('@nrwl/nx-cloud/lib/daemon/process-run-end', {
94
- encryptionKey,
95
- runnerOptions: Object.assign(Object.assign({}, options), { accessToken }),
96
- uploads: fileStorage.uploads,
97
- runEnd: {
98
- runData,
99
- taskExecutions,
100
- linkId,
101
- },
102
- });
103
- runContext.runUrl = `${options.url || 'https://nx.app'}/runs/${linkId}`;
104
- }
105
- catch (e) {
106
- output.warn({
107
- title: `Nx Cloud Problems`,
108
- bodyLines: [e.message || e.toString()],
109
- });
110
- }
111
- }
112
- // this workaround is required because prior to Nx 13.3 we printed
113
- // the end message after the runner completes, so we need to wait for the
114
- // message to appear in the right place
115
- if (versionOfNxBefore133) {
116
- setTimeout(() => {
117
- messages.printMessages();
118
- if (!messages.anyErrors && !inner) {
119
- endOfRunMessage.printCacheHitsMessage();
120
- }
121
- }, 0);
122
- }
123
- else {
124
- messages.printMessages();
125
- if (!messages.anyErrors && !inner) {
126
- endOfRunMessage.printCacheHitsMessage();
127
- }
128
- }
129
- });
130
- }
131
- function createLifeCycle(runContext, options, outputObfuscator, tasks) {
132
- const cloudEnabledLifeCycle = new cloud_enabled_life_cycle_1.CloudEnabledLifeCycle(runContext, options.cacheDirectory, !!options.skipNxCache, options.scan === undefined ? true : options.scan, options.cacheableOperations || [], outputObfuscator, tasks);
133
- try {
134
- const { CompositeLifeCycle } = require('../../../utilities/nx-imports');
135
- if (!CompositeLifeCycle)
136
- return cloudEnabledLifeCycle;
137
- return new CompositeLifeCycle([options.lifeCycle, cloudEnabledLifeCycle]);
138
- }
139
- catch (e) {
140
- return cloudEnabledLifeCycle;
141
- }
142
- }
143
- function fetchUrlsForKnownHashesUpfront(api, runContext, tasks, options) {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- let hashes = tasks.map((t) => t.hash).filter((h) => !!h);
146
- const c = new Cache(options);
147
- if (!options.skipNxCache) {
148
- // filter out the urls that don't have artifact stored locally
149
- const promises = yield Promise.all(hashes.map((hash) => {
150
- const tdCommit = (0, path_1.join)(c.cachePath, `${hash}.commit`);
151
- return (0, fs_extra_1.pathExists)(tdCommit);
152
- }));
153
- const missingHashes = [];
154
- for (let i = 0; i < promises.length; ++i) {
155
- if (promises[i]) {
156
- missingHashes.push(hashes[i]);
157
- }
158
- }
159
- hashes = missingHashes;
160
- }
161
- if (hashes.length > 0) {
162
- const startRunRequest = api.startRun(environment_1.NX_CLOUD_DISTRIBUTED_EXECUTION_ID, hashes);
163
- for (const hash of hashes) {
164
- runContext.requests[hash] = startRunRequest;
165
- }
166
- }
167
- });
168
- }
169
- function isConnectedToPrivateCloud(options) {
170
- if (!options.url)
171
- return false;
172
- if (options.url.endsWith('api.nrwl.io'))
173
- return false;
174
- if (options.url.endsWith('.nx.app'))
175
- return false;
176
- if (options.url.indexOf('localhost') > -1)
177
- return false;
178
- return true;
179
- }
180
- function cloudEnabledTasksRunner(tasks, options, context, inner = false) {
181
- var _a;
182
- const runContext = {
183
- statuses: {},
184
- scheduledTasks: [],
185
- requests: {},
186
- allTasks: tasks,
187
- };
188
- const versionOfNxBefore133 = options.lifeCycle === undefined;
189
- const taskExecutions = [];
190
- const messages = new message_reporter_1.MessageReporter(options);
191
- const api = createApi(messages, options, runContext);
192
- const endOfRunMessage = new end_of_run_message_1.EndOfRunMessage(runContext, taskExecutions);
193
- const outputObfuscator = new output_obfuscator_1.OutputObfuscator(options.maskedProperties);
194
- const runStartTime = new Date().toISOString();
195
- const lifeCycle = createLifeCycle(runContext, options, outputObfuscator, taskExecutions);
196
- const encryptionKey = environment_1.ENCRYPTION_KEY || options.encryptionKey;
197
- const encryption = new e2e_encryption_1.E2EEncryption(encryptionKey);
198
- const errorApi = new error_reporter_api_1.ErrorReporterApi(options);
199
- const uploadInCurrentProcess = !!environment_1.AGENT_RUNNING_IN_DISTRIBUTED_EXECUTION ||
200
- !((_a = context.daemon) === null || _a === void 0 ? void 0 : _a.enabled()) ||
201
- isConnectedToPrivateCloud(options);
202
- const fileStorage = new file_storage_1.FileStorage(encryption, errorApi, false, uploadInCurrentProcess);
203
- const remoteCache = new cloud_remote_cache_1.CloudRemoteCache(messages, api, runContext, fileStorage);
204
- // we don't await for it cause this step is optional
205
- fetchUrlsForKnownHashesUpfront(api, runContext, tasks, options);
206
- // have to reset it so we don't capture inner tasks
207
- delete process.env.NX_CLOUD_DISTRIBUTED_EXECUTION_ID;
208
- const res = tasksRunner(tasks, Object.assign(Object.assign({}, options), { remoteCache, lifeCycle }), context);
209
- // observable -> legacy
210
- if (res.subscribe) {
211
- const { Subject } = require('rxjs/internal/Subject');
212
- const wrappedRes = new Subject();
213
- res.subscribe({
214
- next: (value) => wrappedRes.next(value),
215
- error: (err) => wrappedRes.error(err),
216
- complete: () => __awaiter(this, void 0, void 0, function* () {
217
- yield onComplete({
218
- daemon: context.daemon,
219
- lifeCycle,
220
- options,
221
- remoteCache,
222
- api,
223
- outputObfuscator,
224
- runStartTime,
225
- messages,
226
- endOfRunMessage,
227
- taskExecutions,
228
- versionOfNxBefore133,
229
- inner,
230
- encryptionKey,
231
- fileStorage,
232
- uploadInCurrentProcess,
233
- runContext,
234
- });
235
- wrappedRes.complete();
236
- }),
237
- });
238
- return wrappedRes;
239
- // promise
240
- }
241
- else {
242
- return res
243
- .then((r) => __awaiter(this, void 0, void 0, function* () {
244
- yield onComplete({
245
- daemon: context.daemon,
246
- lifeCycle,
247
- options,
248
- remoteCache,
249
- api,
250
- outputObfuscator,
251
- runStartTime,
252
- messages,
253
- endOfRunMessage,
254
- taskExecutions,
255
- versionOfNxBefore133,
256
- inner,
257
- encryptionKey,
258
- fileStorage,
259
- uploadInCurrentProcess,
260
- runContext,
261
- });
262
- return r;
263
- }))
264
- .catch((e) => __awaiter(this, void 0, void 0, function* () {
265
- yield onComplete({
266
- daemon: context.daemon,
267
- lifeCycle,
268
- options,
269
- remoteCache,
270
- api,
271
- outputObfuscator,
272
- runStartTime,
273
- messages,
274
- endOfRunMessage,
275
- taskExecutions,
276
- versionOfNxBefore133,
277
- inner,
278
- encryptionKey,
279
- fileStorage,
280
- uploadInCurrentProcess,
281
- runContext,
282
- });
283
- throw e;
284
- }));
285
- }
286
- }
287
- exports.cloudEnabledTasksRunner = cloudEnabledTasksRunner;
288
- //# sourceMappingURL=cloud-enabled.runner.js.map
1
+ const a1_0x267e=['extractGitSha','length','anyErrors','endRun','DISTRIBUTED_TASK_EXECUTION_INTERNAL_ERROR_STATUS_CODE','ErrorReporterApi','https://nx.app','scan','message','error','cacheableOperations','hash','FileStorage','AGENT_RUNNING_IN_DISTRIBUTED_EXECUTION','__awaiter','./cloud-remote-cache','exit','daemon','../../terminal-output/output-obfuscator','value','getRunGroup','MessageReporter','Nx\x20Cloud\x20wasn\x27t\x20able\x20to\x20record\x20its\x20run.','api.nrwl.io','waitForStoreRequestsToComplete','generateUniqueLinkId','Nx\x20Cloud\x20Problems','../../../utilities/environment','endsWith','then','CloudRunApi','assign','subscribe','EndOfRunMessage','tasks-hashes-','E2EEncryption','@nrwl/nx-cloud/lib/daemon/process-run-end','ACCESS_TOKEN','uploads','VERBOSE_LOGGING','fs-extra','Nx\x20Cloud\x20wasn\x27t\x20able\x20to\x20store\x20artifacts.','rxjs/internal/Subject','maskedProperties','__esModule','printMessages','toISOString','cloudEnabledTasksRunner','indexOf','getMachineInfo','../../../utilities/nx-imports','writeFileSync','./cloud-enabled-life-cycle','./id-generator','toString','ENCRYPTION_KEY','done','accessToken','../../api/error-reporter.api','map','OutputObfuscator','localhost','lifeCycle','processInBackground','../../file-storage/file-storage','pathExists','../../terminal-output/end-of-run-message','path','CloudEnabledLifeCycle','submitRunMetrics','.commit','url','printCacheHitsMessage','startRun','/runs/','NX_CLOUD_DISTRIBUTED_EXECUTION_ID','taskId','join','next','stringify','apply','getNxCacheDirectory','encryptionKey','requests'];(function(_0xc0fd75,_0x267e2b){const _0xa02b7e=function(_0x1b15f1){while(--_0x1b15f1){_0xc0fd75['push'](_0xc0fd75['shift']());}};_0xa02b7e(++_0x267e2b);}(a1_0x267e,0x96));const a1_0xa02b=function(_0xc0fd75,_0x267e2b){_0xc0fd75=_0xc0fd75-0x0;let _0xa02b7e=a1_0x267e[_0xc0fd75];return _0xa02b7e;};'use strict';var __awaiter=this&&this[a1_0xa02b('0x20')]||function(_0x5cea15,_0x42aa0e,_0x3c841f,_0x2f2508){function _0x3a9bd3(_0x548f68){return _0x548f68 instanceof _0x3c841f?_0x548f68:new _0x3c841f(function(_0x218720){_0x218720(_0x548f68);});}return new(_0x3c841f||(_0x3c841f=Promise))(function(_0x27815f,_0x5cc34c){function _0x19eb9(_0x7bbcb8){try{_0x30788c(_0x2f2508[a1_0xa02b('0xc')](_0x7bbcb8));}catch(_0x3166a0){_0x5cc34c(_0x3166a0);}}function _0x271b8f(_0x48ba12){try{_0x30788c(_0x2f2508['throw'](_0x48ba12));}catch(_0x3509b1){_0x5cc34c(_0x3509b1);}}function _0x30788c(_0x3d0c7b){_0x3d0c7b[a1_0xa02b('0x4a')]?_0x27815f(_0x3d0c7b[a1_0xa02b('0x25')]):_0x3a9bd3(_0x3d0c7b[a1_0xa02b('0x25')])[a1_0xa02b('0x2f')](_0x19eb9,_0x271b8f);}_0x30788c((_0x2f2508=_0x2f2508[a1_0xa02b('0xe')](_0x5cea15,_0x42aa0e||[]))['next']());});};Object['defineProperty'](exports,a1_0xa02b('0x3e'),{'value':!![]});exports['cloudEnabledTasksRunner']=void 0x0;const message_reporter_1=require('../../terminal-output/message-reporter');const end_of_run_message_1=require(a1_0xa02b('0x0'));const output_obfuscator_1=require(a1_0xa02b('0x24'));const cloud_enabled_life_cycle_1=require(a1_0xa02b('0x46'));const file_storage_1=require(a1_0xa02b('0x52'));const e2e_encryption_1=require('../../file-storage/e2e-encryption');const environment_1=require(a1_0xa02b('0x2d'));const cloud_remote_cache_1=require(a1_0xa02b('0x21'));const cloud_run_api_1=require('./cloud-run.api');const fs_1=require('fs');const path=require(a1_0xa02b('0x1'));const metric_logger_1=require('../../../utilities/metric-logger');const error_reporter_api_1=require(a1_0xa02b('0x4c'));const path_1=require(a1_0xa02b('0x1'));const fs_extra_1=require(a1_0xa02b('0x3a'));const id_generator_1=require(a1_0xa02b('0x47'));const {tasksRunner,output,Cache}=require(a1_0xa02b('0x44'));function createApi(_0x1d2264,_0x360ac0,_0x59cc14){const _0x22ebf1=(0x0,environment_1[a1_0xa02b('0x43')])(_0x360ac0);return new cloud_run_api_1[(a1_0xa02b('0x30'))](_0x1d2264,_0x59cc14,_0x360ac0,_0x22ebf1);}function storeTaskHashes(_0x416548,_0x469c97,_0x58675e){const _0x489fe7=JSON[a1_0xa02b('0xd')](_0x416548[a1_0xa02b('0x4d')](_0x27b57c=>({'taskId':_0x27b57c[a1_0xa02b('0xa')],'hash':_0x27b57c[a1_0xa02b('0x1d')]})));if(environment_1[a1_0xa02b('0x39')]){output['note']({'title':'Executed\x20tasks\x20with\x20hashes:\x20'+_0x489fe7});}(0x0,fs_1[a1_0xa02b('0x45')])(path[a1_0xa02b('0xb')](_0x469c97,a1_0xa02b('0x34')+_0x58675e),_0x489fe7);}function onComplete({daemon,lifeCycle,options,remoteCache,api,outputObfuscator,runStartTime,messages,endOfRunMessage,taskExecutions,versionOfNxBefore133,inner,encryptionKey,fileStorage,uploadInCurrentProcess,runContext}){return __awaiter(this,void 0x0,void 0x0,function*(){const _0xaa5409=new Date()[a1_0xa02b('0x40')]();const _0x480113=(0x0,environment_1['getBranch'])();const _0x2f3a32={'command':outputObfuscator['obfuscate']((0x0,environment_1['parseCommand'])()),'startTime':runStartTime,'endTime':_0xaa5409,'distributedExecutionId':environment_1['NX_CLOUD_DISTRIBUTED_EXECUTION_ID'],'branch':_0x480113,'scan':!![],'runGroup':(0x0,environment_1[a1_0xa02b('0x26')])(),'sha':_0x480113?(0x0,environment_1[a1_0xa02b('0x12')])():undefined,'inner':inner};if(uploadInCurrentProcess){if(environment_1['AGENT_RUNNING_IN_DISTRIBUTED_EXECUTION']){storeTaskHashes(taskExecutions,(0x0,environment_1[a1_0xa02b('0xf')])(options),environment_1[a1_0xa02b('0x9')]);}try{yield remoteCache[a1_0xa02b('0x2a')]();}catch(_0xa626a3){output[a1_0xa02b('0x1b')]({'title':a1_0xa02b('0x3b')});messages[a1_0xa02b('0x3f')]();process[a1_0xa02b('0x22')](environment_1[a1_0xa02b('0x16')]);}try{yield api[a1_0xa02b('0x15')](_0x2f3a32,taskExecutions);}catch(_0x109d2c){output[a1_0xa02b('0x1b')]({'title':a1_0xa02b('0x28')});messages[a1_0xa02b('0x3f')]();process[a1_0xa02b('0x22')](environment_1[a1_0xa02b('0x16')]);}yield(0x0,metric_logger_1[a1_0xa02b('0x3')])(options);}else{try{const _0x2f2821=environment_1[a1_0xa02b('0x37')]?environment_1[a1_0xa02b('0x37')]:options[a1_0xa02b('0x4b')];const _0x17e8ae=(0x0,id_generator_1[a1_0xa02b('0x2b')])();yield daemon[a1_0xa02b('0x51')](a1_0xa02b('0x36'),{'encryptionKey':encryptionKey,'runnerOptions':Object['assign'](Object['assign']({},options),{'accessToken':_0x2f2821}),'uploads':fileStorage[a1_0xa02b('0x38')],'runEnd':{'runData':_0x2f3a32,'taskExecutions':taskExecutions,'linkId':_0x17e8ae}});runContext['runUrl']=(options['url']||a1_0xa02b('0x18'))+a1_0xa02b('0x8')+_0x17e8ae;}catch(_0x230f9b){output['warn']({'title':a1_0xa02b('0x2c'),'bodyLines':[_0x230f9b[a1_0xa02b('0x1a')]||_0x230f9b[a1_0xa02b('0x48')]()]});}}if(versionOfNxBefore133){setTimeout(()=>{messages['printMessages']();if(!messages[a1_0xa02b('0x14')]&&!inner){endOfRunMessage['printCacheHitsMessage']();}},0x0);}else{messages['printMessages']();if(!messages[a1_0xa02b('0x14')]&&!inner){endOfRunMessage[a1_0xa02b('0x6')]();}}});}function createLifeCycle(_0x3ef408,_0x1c1bd,_0x494b32,_0x161e6b){const _0x174a8a=new cloud_enabled_life_cycle_1[(a1_0xa02b('0x2'))](_0x3ef408,(0x0,environment_1[a1_0xa02b('0xf')])(_0x1c1bd),!!_0x1c1bd['skipNxCache'],_0x1c1bd[a1_0xa02b('0x19')]===undefined?!![]:_0x1c1bd['scan'],_0x1c1bd[a1_0xa02b('0x1c')]||[],_0x494b32,_0x161e6b);try{const {CompositeLifeCycle}=require(a1_0xa02b('0x44'));if(!CompositeLifeCycle)return _0x174a8a;return new CompositeLifeCycle([_0x1c1bd[a1_0xa02b('0x50')],_0x174a8a]);}catch(_0x281f9b){return _0x174a8a;}}function fetchUrlsForKnownHashesUpfront(_0x696dbb,_0x1bc468,_0x314387,_0x2bdfd0){return __awaiter(this,void 0x0,void 0x0,function*(){let _0x26aa9d=_0x314387[a1_0xa02b('0x4d')](_0x1f7c69=>_0x1f7c69[a1_0xa02b('0x1d')])['filter'](_0x2bd594=>!!_0x2bd594);const _0x339f81=new Cache(_0x2bdfd0);if(!_0x2bdfd0['skipNxCache']){const _0x197da7=yield Promise['all'](_0x26aa9d[a1_0xa02b('0x4d')](_0x1a68da=>{const _0x1ecd9e=(0x0,path_1[a1_0xa02b('0xb')])(_0x339f81['cachePath'],_0x1a68da+a1_0xa02b('0x4'));return(0x0,fs_extra_1[a1_0xa02b('0x53')])(_0x1ecd9e);}));const _0x30079=[];for(let _0x4c596f=0x0;_0x4c596f<_0x197da7[a1_0xa02b('0x13')];++_0x4c596f){if(_0x197da7[_0x4c596f]){_0x30079['push'](_0x26aa9d[_0x4c596f]);}}_0x26aa9d=_0x30079;}if(_0x26aa9d[a1_0xa02b('0x13')]>0x0){const _0x3190e1=_0x696dbb[a1_0xa02b('0x7')](environment_1[a1_0xa02b('0x9')],_0x26aa9d);for(const _0x21ce05 of _0x26aa9d){_0x1bc468[a1_0xa02b('0x11')][_0x21ce05]=_0x3190e1;}}});}function isConnectedToPrivateCloud(_0x4eea66){if(!_0x4eea66['url'])return![];if(_0x4eea66[a1_0xa02b('0x5')][a1_0xa02b('0x2e')](a1_0xa02b('0x29')))return![];if(_0x4eea66[a1_0xa02b('0x5')]['endsWith']('.nx.app'))return![];if(_0x4eea66[a1_0xa02b('0x5')][a1_0xa02b('0x42')](a1_0xa02b('0x4f'))>-0x1)return![];return!![];}function cloudEnabledTasksRunner(_0x10ca0f,_0x52dece,_0x240e9a,_0x1b2a82=![]){var _0x42f7ca;const _0x1d4622={'statuses':{},'scheduledTasks':[],'requests':{},'allTasks':_0x10ca0f};const _0x2b0242=_0x52dece[a1_0xa02b('0x50')]===undefined;const _0xcaac61=[];const _0x168bad=new message_reporter_1[(a1_0xa02b('0x27'))](_0x52dece);const _0x19a60e=createApi(_0x168bad,_0x52dece,_0x1d4622);const _0x15089a=new end_of_run_message_1[(a1_0xa02b('0x33'))](_0x1d4622,_0xcaac61);const _0x2b1c3c=new output_obfuscator_1[(a1_0xa02b('0x4e'))](_0x52dece[a1_0xa02b('0x3d')]);const _0x675dc6=new Date()['toISOString']();const _0x43cfa2=createLifeCycle(_0x1d4622,_0x52dece,_0x2b1c3c,_0xcaac61);const _0x3624f2=environment_1[a1_0xa02b('0x49')]||_0x52dece[a1_0xa02b('0x10')];const _0xb133f9=new e2e_encryption_1[(a1_0xa02b('0x35'))](_0x3624f2);const _0x474140=new error_reporter_api_1[(a1_0xa02b('0x17'))](_0x52dece);const _0x3e8eff=!!environment_1[a1_0xa02b('0x1f')]||!((_0x42f7ca=_0x240e9a[a1_0xa02b('0x23')])===null||_0x42f7ca===void 0x0?void 0x0:_0x42f7ca['enabled']())||isConnectedToPrivateCloud(_0x52dece);const _0x57548d=new file_storage_1[(a1_0xa02b('0x1e'))](_0xb133f9,_0x474140,![],_0x3e8eff);const _0x27d1d9=new cloud_remote_cache_1['CloudRemoteCache'](_0x168bad,_0x19a60e,_0x1d4622,_0x57548d);fetchUrlsForKnownHashesUpfront(_0x19a60e,_0x1d4622,_0x10ca0f,_0x52dece);delete process['env'][a1_0xa02b('0x9')];const _0x5797ef=tasksRunner(_0x10ca0f,Object[a1_0xa02b('0x31')](Object[a1_0xa02b('0x31')]({},_0x52dece),{'remoteCache':_0x27d1d9,'lifeCycle':_0x43cfa2}),_0x240e9a);if(_0x5797ef[a1_0xa02b('0x32')]){const {Subject}=require(a1_0xa02b('0x3c'));const _0x5a8fe2=new Subject();_0x5797ef[a1_0xa02b('0x32')]({'next':_0x376805=>_0x5a8fe2[a1_0xa02b('0xc')](_0x376805),'error':_0x4d7d8b=>_0x5a8fe2['error'](_0x4d7d8b),'complete':()=>__awaiter(this,void 0x0,void 0x0,function*(){yield onComplete({'daemon':_0x240e9a[a1_0xa02b('0x23')],'lifeCycle':_0x43cfa2,'options':_0x52dece,'remoteCache':_0x27d1d9,'api':_0x19a60e,'outputObfuscator':_0x2b1c3c,'runStartTime':_0x675dc6,'messages':_0x168bad,'endOfRunMessage':_0x15089a,'taskExecutions':_0xcaac61,'versionOfNxBefore133':_0x2b0242,'inner':_0x1b2a82,'encryptionKey':_0x3624f2,'fileStorage':_0x57548d,'uploadInCurrentProcess':_0x3e8eff,'runContext':_0x1d4622});_0x5a8fe2['complete']();})});return _0x5a8fe2;}else{return _0x5797ef['then'](_0x19b7dd=>__awaiter(this,void 0x0,void 0x0,function*(){yield onComplete({'daemon':_0x240e9a[a1_0xa02b('0x23')],'lifeCycle':_0x43cfa2,'options':_0x52dece,'remoteCache':_0x27d1d9,'api':_0x19a60e,'outputObfuscator':_0x2b1c3c,'runStartTime':_0x675dc6,'messages':_0x168bad,'endOfRunMessage':_0x15089a,'taskExecutions':_0xcaac61,'versionOfNxBefore133':_0x2b0242,'inner':_0x1b2a82,'encryptionKey':_0x3624f2,'fileStorage':_0x57548d,'uploadInCurrentProcess':_0x3e8eff,'runContext':_0x1d4622});return _0x19b7dd;}))['catch'](_0x21336e=>__awaiter(this,void 0x0,void 0x0,function*(){yield onComplete({'daemon':_0x240e9a[a1_0xa02b('0x23')],'lifeCycle':_0x43cfa2,'options':_0x52dece,'remoteCache':_0x27d1d9,'api':_0x19a60e,'outputObfuscator':_0x2b1c3c,'runStartTime':_0x675dc6,'messages':_0x168bad,'endOfRunMessage':_0x15089a,'taskExecutions':_0xcaac61,'versionOfNxBefore133':_0x2b0242,'inner':_0x1b2a82,'encryptionKey':_0x3624f2,'fileStorage':_0x57548d,'uploadInCurrentProcess':_0x3e8eff,'runContext':_0x1d4622});throw _0x21336e;}));}}exports[a1_0xa02b('0x41')]=cloudEnabledTasksRunner;