@nrwl/nx-cloud 15.0.4-beta.2 → 15.0.4-beta.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 (154) hide show
  1. package/bin/nx-cloud.d.ts +2 -0
  2. package/bin/nx-cloud.js +50 -0
  3. package/bin/nx-cloud.js.map +1 -0
  4. package/index.d.ts +2 -0
  5. package/index.js +5 -0
  6. package/index.js.map +1 -0
  7. package/lib/core/api/error-reporter.api.d.ts +6 -0
  8. package/lib/core/api/error-reporter.api.js +36 -0
  9. package/lib/core/api/error-reporter.api.js.map +1 -0
  10. package/lib/core/api/run-group.api.d.ts +7 -0
  11. package/lib/core/api/run-group.api.js +68 -0
  12. package/lib/core/api/run-group.api.js.map +1 -0
  13. package/lib/core/commands/clean-up-agents.d.ts +1 -0
  14. package/lib/core/commands/clean-up-agents.js +34 -0
  15. package/lib/core/commands/clean-up-agents.js.map +1 -0
  16. package/lib/core/commands/record-output.d.ts +1 -0
  17. package/lib/core/commands/record-output.js +177 -0
  18. package/lib/core/commands/record-output.js.map +1 -0
  19. package/lib/core/commands/start-ci-run.d.ts +1 -0
  20. package/lib/core/commands/start-ci-run.js +61 -0
  21. package/lib/core/commands/start-ci-run.js.map +1 -0
  22. package/lib/core/commands/stop-all-agents.d.ts +1 -0
  23. package/lib/core/commands/stop-all-agents.js +37 -0
  24. package/lib/core/commands/stop-all-agents.js.map +1 -0
  25. package/lib/core/commands/upload-and-show-run-details.d.ts +1 -0
  26. package/lib/core/commands/upload-and-show-run-details.js +60 -0
  27. package/lib/core/commands/upload-and-show-run-details.js.map +1 -0
  28. package/lib/core/error/print-invalid-runner-error.d.ts +1 -0
  29. package/lib/core/error/print-invalid-runner-error.js +17 -0
  30. package/lib/core/error/print-invalid-runner-error.js.map +1 -0
  31. package/lib/core/error/print-run-group-error.d.ts +1 -0
  32. package/lib/core/error/print-run-group-error.js +16 -0
  33. package/lib/core/error/print-run-group-error.js.map +1 -0
  34. package/lib/core/file-storage/e2e-encryption.d.ts +9 -0
  35. package/lib/core/file-storage/e2e-encryption.js +46 -0
  36. package/lib/core/file-storage/e2e-encryption.js.map +1 -0
  37. package/lib/core/file-storage/file-storage.d.ts +24 -0
  38. package/lib/core/file-storage/file-storage.js +262 -0
  39. package/lib/core/file-storage/file-storage.js.map +1 -0
  40. package/lib/core/models/cache-urls.model.d.ts +6 -0
  41. package/lib/core/models/cache-urls.model.js +3 -0
  42. package/lib/core/models/cache-urls.model.js.map +1 -0
  43. package/lib/core/models/cloud-task-runner-options.d.ts +20 -0
  44. package/lib/core/models/cloud-task-runner-options.js +3 -0
  45. package/lib/core/models/cloud-task-runner-options.js.map +1 -0
  46. package/lib/core/models/distributed-agent/grouped-tasks.model.d.ts +6 -0
  47. package/lib/core/models/distributed-agent/grouped-tasks.model.js +3 -0
  48. package/lib/core/models/distributed-agent/grouped-tasks.model.js.map +1 -0
  49. package/lib/core/models/distributed-agent/index.d.ts +3 -0
  50. package/lib/core/models/distributed-agent/index.js +20 -0
  51. package/lib/core/models/distributed-agent/index.js.map +1 -0
  52. package/lib/core/models/distributed-agent/task-to-execute.model.d.ts +7 -0
  53. package/lib/core/models/distributed-agent/task-to-execute.model.js +3 -0
  54. package/lib/core/models/distributed-agent/task-to-execute.model.js.map +1 -0
  55. package/lib/core/models/distributed-agent/tasks-api-response.model.d.ts +10 -0
  56. package/lib/core/models/distributed-agent/tasks-api-response.model.js +3 -0
  57. package/lib/core/models/distributed-agent/tasks-api-response.model.js.map +1 -0
  58. package/lib/core/models/machine-info.model.d.ts +6 -0
  59. package/lib/core/models/machine-info.model.js +3 -0
  60. package/lib/core/models/machine-info.model.js.map +1 -0
  61. package/lib/core/models/run-context.model.d.ts +128 -0
  62. package/lib/core/models/run-context.model.js +22 -0
  63. package/lib/core/models/run-context.model.js.map +1 -0
  64. package/lib/core/models/run-data.model.d.ts +11 -0
  65. package/lib/core/models/run-data.model.js +3 -0
  66. package/lib/core/models/run-data.model.js.map +1 -0
  67. package/lib/core/models/task-execution.model.d.ts +13 -0
  68. package/lib/core/models/task-execution.model.js +3 -0
  69. package/lib/core/models/task-execution.model.js.map +1 -0
  70. package/lib/core/runners/cloud-enabled/cloud-enabled-life-cycle.d.ts +19 -0
  71. package/lib/core/runners/cloud-enabled/cloud-enabled-life-cycle.js +84 -0
  72. package/lib/core/runners/cloud-enabled/cloud-enabled-life-cycle.js.map +1 -0
  73. package/lib/core/runners/cloud-enabled/cloud-enabled.runner.d.ts +3 -0
  74. package/lib/core/runners/cloud-enabled/cloud-enabled.runner.js +288 -0
  75. package/lib/core/runners/cloud-enabled/cloud-enabled.runner.js.map +1 -0
  76. package/lib/core/runners/cloud-enabled/cloud-remote-cache.d.ts +16 -0
  77. package/lib/core/runners/cloud-enabled/cloud-remote-cache.js +117 -0
  78. package/lib/core/runners/cloud-enabled/cloud-remote-cache.js.map +1 -0
  79. package/lib/core/runners/cloud-enabled/cloud-run.api.d.ts +18 -0
  80. package/lib/core/runners/cloud-enabled/cloud-run.api.js +167 -0
  81. package/lib/core/runners/cloud-enabled/cloud-run.api.js.map +1 -0
  82. package/lib/core/runners/cloud-enabled/id-generator.d.ts +1 -0
  83. package/lib/core/runners/cloud-enabled/id-generator.js +16 -0
  84. package/lib/core/runners/cloud-enabled/id-generator.js.map +1 -0
  85. package/lib/core/runners/distributed-agent/distributed-agent.api.d.ts +13 -0
  86. package/lib/core/runners/distributed-agent/distributed-agent.api.js +79 -0
  87. package/lib/core/runners/distributed-agent/distributed-agent.api.js.map +1 -0
  88. package/lib/core/runners/distributed-agent/distributed-agent.impl.d.ts +1 -0
  89. package/lib/core/runners/distributed-agent/distributed-agent.impl.js +269 -0
  90. package/lib/core/runners/distributed-agent/distributed-agent.impl.js.map +1 -0
  91. package/lib/core/runners/distributed-execution/distributed-execution.api.d.ts +10 -0
  92. package/lib/core/runners/distributed-execution/distributed-execution.api.js +143 -0
  93. package/lib/core/runners/distributed-execution/distributed-execution.api.js.map +1 -0
  94. package/lib/core/runners/distributed-execution/distributed-execution.runner.d.ts +1 -0
  95. package/lib/core/runners/distributed-execution/distributed-execution.runner.js +241 -0
  96. package/lib/core/runners/distributed-execution/distributed-execution.runner.js.map +1 -0
  97. package/lib/core/runners/distributed-execution/split-task-graph-into-stages.d.ts +2 -0
  98. package/lib/core/runners/distributed-execution/split-task-graph-into-stages.js +37 -0
  99. package/lib/core/runners/distributed-execution/split-task-graph-into-stages.js.map +1 -0
  100. package/lib/core/runners/distributed-execution/task-graph-creator.d.ts +15 -0
  101. package/lib/core/runners/distributed-execution/task-graph-creator.js +77 -0
  102. package/lib/core/runners/distributed-execution/task-graph-creator.js.map +1 -0
  103. package/lib/core/terminal-output/end-of-run-message.d.ts +8 -0
  104. package/lib/core/terminal-output/end-of-run-message.js +44 -0
  105. package/lib/core/terminal-output/end-of-run-message.js.map +1 -0
  106. package/lib/core/terminal-output/message-reporter.d.ts +11 -0
  107. package/lib/core/terminal-output/message-reporter.js +71 -0
  108. package/lib/core/terminal-output/message-reporter.js.map +1 -0
  109. package/lib/core/terminal-output/output-obfuscator.d.ts +6 -0
  110. package/lib/core/terminal-output/output-obfuscator.js +48 -0
  111. package/lib/core/terminal-output/output-obfuscator.js.map +1 -0
  112. package/lib/core/terminal-output/read-task-terminal-output.d.ts +2 -0
  113. package/lib/core/terminal-output/read-task-terminal-output.js +60 -0
  114. package/lib/core/terminal-output/read-task-terminal-output.js.map +1 -0
  115. package/lib/daemon/process-run-end.d.ts +3 -0
  116. package/lib/daemon/process-run-end.js +60 -0
  117. package/lib/daemon/process-run-end.js.map +1 -0
  118. package/lib/generators/init/init.d.ts +1 -0
  119. package/lib/generators/init/init.js +96 -0
  120. package/lib/generators/init/init.js.map +1 -0
  121. package/lib/nx-cloud-tasks-runner.d.ts +2 -0
  122. package/lib/nx-cloud-tasks-runner.js +146 -0
  123. package/lib/nx-cloud-tasks-runner.js.map +1 -0
  124. package/lib/utilities/axios.d.ts +10 -0
  125. package/lib/utilities/axios.js +87 -0
  126. package/lib/utilities/axios.js.map +1 -0
  127. package/lib/utilities/create-unchanged-value-timeout.d.ts +4 -0
  128. package/lib/utilities/create-unchanged-value-timeout.js +24 -0
  129. package/lib/utilities/create-unchanged-value-timeout.js.map +1 -0
  130. package/lib/utilities/distributed-task-execution-detection.d.ts +2 -0
  131. package/lib/utilities/distributed-task-execution-detection.js +36 -0
  132. package/lib/utilities/distributed-task-execution-detection.js.map +1 -0
  133. package/lib/utilities/environment.d.ts +27 -0
  134. package/lib/utilities/environment.js +200 -0
  135. package/lib/utilities/environment.js.map +1 -0
  136. package/lib/utilities/is-ci.d.ts +1 -0
  137. package/lib/utilities/is-ci.js +21 -0
  138. package/lib/utilities/is-ci.js.map +1 -0
  139. package/lib/utilities/metric-logger.d.ts +22 -0
  140. package/lib/utilities/metric-logger.js +70 -0
  141. package/lib/utilities/metric-logger.js.map +1 -0
  142. package/lib/utilities/nx-imports.d.ts +0 -0
  143. package/lib/utilities/nx-imports.js +59 -0
  144. package/lib/utilities/nx-imports.js.map +1 -0
  145. package/lib/utilities/print-message.d.ts +1 -0
  146. package/lib/utilities/print-message.js +64 -0
  147. package/lib/utilities/print-message.js.map +1 -0
  148. package/lib/utilities/serializer-overrides.d.ts +2 -0
  149. package/lib/utilities/serializer-overrides.js +40 -0
  150. package/lib/utilities/serializer-overrides.js.map +1 -0
  151. package/lib/utilities/waiter.d.ts +6 -0
  152. package/lib/utilities/waiter.js +36 -0
  153. package/lib/utilities/waiter.js.map +1 -0
  154. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const clean_up_agents_1 = require("../lib/core/commands/clean-up-agents");
5
+ const record_output_1 = require("../lib/core/commands/record-output");
6
+ const start_ci_run_1 = require("../lib/core/commands/start-ci-run");
7
+ const stop_all_agents_1 = require("../lib/core/commands/stop-all-agents");
8
+ const distributed_agent_impl_1 = require("../lib/core/runners/distributed-agent/distributed-agent.impl");
9
+ const upload_and_show_run_details_1 = require("../lib/core/commands/upload-and-show-run-details");
10
+ const command = process.argv[2];
11
+ if (command === 'start-agent') {
12
+ (0, distributed_agent_impl_1.startAgent)().catch((e) => {
13
+ console.error(e);
14
+ process.exit(1);
15
+ });
16
+ }
17
+ else if (command === 'stop-all-agents') {
18
+ (0, stop_all_agents_1.stopAllAgents)().catch((e) => {
19
+ console.error(e);
20
+ process.exit(1);
21
+ });
22
+ }
23
+ else if (command === 'start-ci-run') {
24
+ (0, start_ci_run_1.startCiRun)().catch((e) => {
25
+ console.error(e);
26
+ process.exit(1);
27
+ });
28
+ }
29
+ else if (command === 'clean-up-agents') {
30
+ (0, clean_up_agents_1.cleanUpAgents)().catch((e) => {
31
+ console.error(e);
32
+ process.exit(1);
33
+ });
34
+ }
35
+ else if (command === 'record') {
36
+ (0, record_output_1.runCommandAndStoreInCloud)().catch((e) => {
37
+ console.error(e);
38
+ process.exit(1);
39
+ });
40
+ }
41
+ else if (command === 'upload-and-show-run-details') {
42
+ (0, upload_and_show_run_details_1.uploadAndShowRunDetails)().catch((e) => {
43
+ console.error(e);
44
+ process.exit(1);
45
+ });
46
+ }
47
+ else {
48
+ console.log('Pass start-agent, stop-all-agents, or clean-up-agents');
49
+ }
50
+ //# sourceMappingURL=nx-cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-cloud.js","sourceRoot":"","sources":["../../../../../libs/nx-packages/nx-cloud/bin/nx-cloud.ts"],"names":[],"mappings":";;;AAEA,0EAAqE;AACrE,sEAA+E;AAC/E,oEAA+D;AAC/D,0EAAqE;AACrE,yGAA0F;AAC1F,kGAA2F;AAE3F,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,IAAI,OAAO,KAAK,aAAa,EAAE;IAC7B,IAAA,mCAAU,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ;KAAM,IAAI,OAAO,KAAK,iBAAiB,EAAE;IACxC,IAAA,+BAAa,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ;KAAM,IAAI,OAAO,KAAK,cAAc,EAAE;IACrC,IAAA,yBAAU,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ;KAAM,IAAI,OAAO,KAAK,iBAAiB,EAAE;IACxC,IAAA,+BAAa,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ;KAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;IAC/B,IAAA,yCAAyB,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ;KAAM,IAAI,OAAO,KAAK,6BAA6B,EAAE;IACpD,IAAA,qDAAuB,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ;KAAM;IACL,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;CACtE"}
package/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import nxCloudTasksRunner from './lib/nx-cloud-tasks-runner';
2
+ export default nxCloudTasksRunner;
package/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const nx_cloud_tasks_runner_1 = require("./lib/nx-cloud-tasks-runner");
4
+ exports.default = nx_cloud_tasks_runner_1.default;
5
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nx-packages/nx-cloud/index.ts"],"names":[],"mappings":";;AAAA,uEAA6D;AAE7D,kBAAe,+BAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { CloudTaskRunnerOptions } from '../models/cloud-task-runner-options';
2
+ export declare class ErrorReporterApi {
3
+ private apiAxiosInstance;
4
+ constructor(options: CloudTaskRunnerOptions);
5
+ reportError(message: string): Promise<void>;
6
+ }
@@ -0,0 +1,36 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-reporter.api.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/api/error-reporter.api.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAG+B;AAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAEzD,MAAa,gBAAgB;IAG3B,YAAY,OAA+B;QACzC,IAAI,CAAC,gBAAgB,GAAG,IAAA,8BAAsB,EAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEK,WAAW,CAAC,OAAe;;YAC/B,IAAI;gBACF,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,+BAA+B,EAAE;oBAC1D,OAAO;iBACR,CAAC,CACH,CAAC;aACH;YAAC,OAAO,CAAM,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,0CAA0C,OAAO,GAAG;oBAC3D,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBACvB,CAAC,CAAC;aACJ;QACH,CAAC;KAAA;CACF;AArBD,4CAqBC"}
@@ -0,0 +1,7 @@
1
+ import { CloudTaskRunnerOptions } from '../models/cloud-task-runner-options';
2
+ export declare class RunGroupApi {
3
+ private apiAxiosInstance;
4
+ constructor(options: CloudTaskRunnerOptions);
5
+ createRunGroup(branch: string | null, runGroup: string, stopAgentsOnFailure?: boolean, agentCount?: number, stopAgentsAfter?: string): Promise<void>;
6
+ completeRunGroup(runGroup: string): Promise<void>;
7
+ }
@@ -0,0 +1,68 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-group.api.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/api/run-group.api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAG+B;AAC/B,iEAIuC;AAGvC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAEzD,MAAa,WAAW;IAGtB,YAAY,OAA+B;QACzC,IAAI,CAAC,gBAAgB,GAAG,IAAA,8BAAsB,EAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEK,cAAc,CAClB,MAAqB,EACrB,QAAgB,EAChB,mBAA6B,EAC7B,UAAmB,EACnB,eAAwB;;;YAExB,MAAM,QAAQ,GAAG,IAAA,oCAAoB,EAAC,gBAAgB,CAAC,CAAC;YACxD,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,CACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,uCAAuC,EAAE;oBAClE,MAAM;oBACN,QAAQ;oBACR,mBAAmB;oBACnB,UAAU;oBACV,eAAe;iBAChB,CAAC,CACH,CAAC;gBACF,QAAQ,CAAC,YAAY,CAAC,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;aACjD;YAAC,OAAO,CAAM,EAAE;gBACf,QAAQ,CAAC,YAAY,CACnB,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,cAAc,0CAAE,QAAQ;oBACzB,CAAC,CAAC,IAAA,kCAAkB,EAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;oBAC/C,CAAC,CAAC,yCAAyB,CAC9B,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC;oBACX,KAAK,EAAE,CAAC,CAAC,OAAO;iBACjB,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;;KACF;IAEK,gBAAgB,CAAC,QAAgB;;;YACrC,MAAM,QAAQ,GAAG,IAAA,oCAAoB,EAAC,gBAAgB,CAAC,CAAC;YAExD,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,CACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,yCAAyC,EAAE;oBACpE,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CACH,CAAC;gBACF,QAAQ,CAAC,YAAY,CAAC,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;aACjD;YAAC,OAAO,CAAM,EAAE;gBACf,QAAQ,CAAC,YAAY,CACnB,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,cAAc,0CAAE,QAAQ;oBACzB,CAAC,CAAC,IAAA,kCAAkB,EAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;oBAC/C,CAAC,CAAC,yCAAyB,CAC9B,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC;oBACX,KAAK,EAAE,CAAC,CAAC,OAAO;iBACjB,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;;KACF;CACF;AA/DD,kCA+DC"}
@@ -0,0 +1 @@
1
+ export declare function cleanUpAgents(): Promise<void>;
@@ -0,0 +1,34 @@
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.cleanUpAgents = void 0;
13
+ const stripJsonComments = require("strip-json-comments");
14
+ const environment_1 = require("../../utilities/environment");
15
+ const fs_1 = require("fs");
16
+ const { output, workspaceRoot } = require('../../utilities/nx-imports');
17
+ function cleanUpAgents() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const options = JSON.parse(stripJsonComments((0, fs_1.readFileSync)(`${workspaceRoot}/nx.json`).toString())).tasksRunnerOptions.default.options;
20
+ const cacheDirectory = (0, environment_1.getNxCacheDirectory)(options);
21
+ const lockFileDirectory = `${cacheDirectory}/lockfiles`;
22
+ if (environment_1.VERBOSE_LOGGING) {
23
+ output.note({
24
+ title: `Cleaning up agent metadata for this workspace.`,
25
+ });
26
+ }
27
+ return (0, fs_1.rm)(lockFileDirectory, { recursive: true, force: true }, (err) => {
28
+ if (err)
29
+ throw err;
30
+ });
31
+ });
32
+ }
33
+ exports.cleanUpAgents = cleanUpAgents;
34
+ //# sourceMappingURL=clean-up-agents.js.map
@@ -0,0 +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,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"}
@@ -0,0 +1 @@
1
+ export declare function runCommandAndStoreInCloud(): Promise<void>;
@@ -0,0 +1,177 @@
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.runCommandAndStoreInCloud = void 0;
13
+ const cp = require("child_process");
14
+ const environment_1 = require("../../utilities/environment");
15
+ const axios_1 = require("../../utilities/axios");
16
+ const util_1 = require("util");
17
+ const zlib_1 = require("zlib");
18
+ const output_obfuscator_1 = require("../terminal-output/output-obfuscator");
19
+ const print_message_1 = require("../../utilities/print-message");
20
+ const distributed_execution_api_1 = require("../runners/distributed-execution/distributed-execution.api");
21
+ const { output, workspaceRoot } = require('../../utilities/nx-imports');
22
+ const MAX_CHARACTERS_OUTPUT_CAPTURE = 200000;
23
+ function runCommandAndStoreInCloud() {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const taskRunnerOptions = getTaskRunnerOptions();
26
+ const axios = (0, axios_1.createApiAxiosInstance)(taskRunnerOptions);
27
+ const dteApi = new distributed_execution_api_1.DistributedExecutionApi(taskRunnerOptions);
28
+ const outputObfuscator = new output_obfuscator_1.OutputObfuscator(taskRunnerOptions.maskedProperties);
29
+ const branch = (0, environment_1.getBranch)();
30
+ const runGroup = (0, environment_1.getRunGroup)();
31
+ const userCommandAndArgs = parseCommandAndFlags(process.argv);
32
+ const [userCommand, ...userArgs] = userCommandAndArgs;
33
+ const startTime = new Date().toISOString();
34
+ const { statusCode, terminalOutput } = yield spawnUserCommandAndCaptureOutput(userCommand, userArgs);
35
+ const endTime = new Date().toISOString();
36
+ const endRecordOutputRunParams = {
37
+ statusCode,
38
+ terminalOutput,
39
+ userCommandAndArgsString: userCommandAndArgs.join(' '),
40
+ startTime,
41
+ endTime,
42
+ branch,
43
+ runGroup,
44
+ };
45
+ yield endRecordOutputRun(axios, outputObfuscator, taskRunnerOptions, endRecordOutputRunParams, dteApi);
46
+ process.exit(statusCode);
47
+ });
48
+ }
49
+ exports.runCommandAndStoreInCloud = runCommandAndStoreInCloud;
50
+ function getTaskRunnerOptions() {
51
+ var _a, _b, _c;
52
+ try {
53
+ const taskRunnerOptions = (_c = (_b = (_a = require(`${workspaceRoot}/nx.json`)) === null || _a === void 0 ? void 0 : _a.tasksRunnerOptions) === null || _b === void 0 ? void 0 : _b.default) === null || _c === void 0 ? void 0 : _c.options;
54
+ return taskRunnerOptions;
55
+ }
56
+ catch (e) {
57
+ throw new Error('Unable to locate task runner options.');
58
+ }
59
+ }
60
+ function parseCommandAndFlags(args) {
61
+ let commandStartIndex = args.findIndex((arg) => arg === 'record') + 1;
62
+ let userCommandAndArgs;
63
+ if (commandStartIndex < process.argv.length) {
64
+ // Different package managers may remove not the "--" from the command automatically, so account for that
65
+ const sliceOffset = process.argv[commandStartIndex] === '--' ? 1 : 0;
66
+ userCommandAndArgs = process.argv.slice(commandStartIndex + sliceOffset);
67
+ }
68
+ else {
69
+ console.log('Invalid command. Use `nx-cloud record [my command] [my arg1] [my arg...]`');
70
+ process.exit(1);
71
+ }
72
+ return userCommandAndArgs;
73
+ }
74
+ function spawnUserCommandAndCaptureOutput(command, args) {
75
+ return new Promise((res, rej) => {
76
+ try {
77
+ const userCommandProcess = cp.spawn(command, args, {
78
+ stdio: ['inherit', 'pipe', 'pipe', 'ipc'],
79
+ });
80
+ const outLines = [];
81
+ userCommandProcess.stdout.on('data', (chunk) => {
82
+ process.stdout.write(chunk);
83
+ outLines.push(chunk.toString());
84
+ });
85
+ userCommandProcess.stderr.on('data', (chunk) => {
86
+ process.stderr.write(chunk);
87
+ outLines.push(chunk.toString());
88
+ });
89
+ userCommandProcess.on('exit', (exitCode, exitSignal) => {
90
+ const statusCode = exitCode !== null && exitCode !== void 0 ? exitCode : signalToCode(exitSignal || '');
91
+ const joinedOutput = outLines.join('');
92
+ res({
93
+ statusCode,
94
+ terminalOutput: joinedOutput,
95
+ });
96
+ });
97
+ }
98
+ catch (e) {
99
+ rej(e);
100
+ }
101
+ });
102
+ }
103
+ function createTaskDefinitionFromUserCommand(outputObfuscator, params) {
104
+ const sanitizedOutput = outputObfuscator.obfuscate(params.terminalOutput);
105
+ const truncatedOutput = sanitizedOutput.length > MAX_CHARACTERS_OUTPUT_CAPTURE
106
+ ? `TRUNCATED\n\n${sanitizedOutput.slice(sanitizedOutput.length - MAX_CHARACTERS_OUTPUT_CAPTURE)}`
107
+ : sanitizedOutput;
108
+ return {
109
+ taskId: 'nx-cloud-tasks-runner:record-command',
110
+ target: 'record-command',
111
+ projectName: 'nx-cloud-tasks-runner',
112
+ hash: '',
113
+ startTime: params.startTime,
114
+ endTime: params.endTime,
115
+ hashDetails: {},
116
+ params: params.userCommandAndArgsString,
117
+ cacheStatus: 'n/a',
118
+ status: params.statusCode,
119
+ terminalOutput: truncatedOutput,
120
+ };
121
+ }
122
+ function endRecordOutputRun(axios, obfuscator, taskRunnerOptions, params, dteApi) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const commandWithPrefix = `nx-cloud record -- ${params.userCommandAndArgsString}`;
125
+ const endRunReq = {
126
+ meta: {
127
+ nxCloudVersion: '0.0.0',
128
+ },
129
+ tasks: [createTaskDefinitionFromUserCommand(obfuscator, params)],
130
+ run: {
131
+ command: commandWithPrefix,
132
+ startTime: params.startTime,
133
+ endTime: params.endTime,
134
+ branch: params.branch,
135
+ scan: true,
136
+ runGroup: params.runGroup,
137
+ // only set sha if branch is set because we invoke a separate process,
138
+ // which adds a few millis
139
+ sha: params.branch ? (0, environment_1.extractGitSha)() : undefined,
140
+ },
141
+ machineInfo: (0, environment_1.getMachineInfo)(taskRunnerOptions),
142
+ };
143
+ const uncompressedBuffer = Buffer.from(JSON.stringify(endRunReq));
144
+ const compressedBuffer = yield (0, util_1.promisify)(zlib_1.gzip)(uncompressedBuffer);
145
+ const endRunResp = yield (0, axios_1.axiosMultipleTries)(() => axios.post('/nx-cloud/runs/end', compressedBuffer, {
146
+ headers: Object.assign(Object.assign({}, axios.defaults.headers), { 'Content-Encoding': 'gzip', 'Content-Type': 'application/octet-stream' }),
147
+ }));
148
+ if (process.env.NX_CLOUD_SILENT_RECORD !== 'true') {
149
+ printRecordOutputRunEndMessage(endRunResp.data.runUrl);
150
+ }
151
+ if (params.statusCode !== 0 && params.runGroup) {
152
+ yield dteApi.completeRunGroupWithError(params.runGroup, `Command "${params.userCommandAndArgsString}" failed.`);
153
+ }
154
+ });
155
+ }
156
+ function printRecordOutputRunEndMessage(runUrl) {
157
+ output.addVerticalSeparator();
158
+ output.note({ title: 'Nx Cloud: Successfully recorded command output' });
159
+ (0, print_message_1.printMessage)(`You can view or share your output by visiting ${runUrl}`);
160
+ }
161
+ // Everything from here down is ripped from the nx package
162
+ // You probably don't want to adjust this manually
163
+ /**
164
+ * https://github.com/nrwl/nx/blob/master/packages/nx/src/tasks-runner/forked-process-task-runner.ts
165
+ *
166
+ * @param signal
167
+ */
168
+ function signalToCode(signal) {
169
+ if (signal === 'SIGHUP')
170
+ return 128 + 1;
171
+ if (signal === 'SIGINT')
172
+ return 128 + 2;
173
+ if (signal === 'SIGTERM')
174
+ return 128 + 15;
175
+ return 128;
176
+ }
177
+ //# sourceMappingURL=record-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-output.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/commands/record-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function startCiRun(): Promise<void>;
@@ -0,0 +1,61 @@
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.startCiRun = void 0;
13
+ const stripJsonComments = require("strip-json-comments");
14
+ const environment_1 = require("../../utilities/environment");
15
+ const print_run_group_error_1 = require("../error/print-run-group-error");
16
+ const run_group_api_1 = require("../api/run-group.api");
17
+ const fs_1 = require("fs");
18
+ const yargsParser = require("yargs-parser");
19
+ const distributed_task_execution_detection_1 = require("../../utilities/distributed-task-execution-detection");
20
+ const { output, workspaceRoot } = require('../../utilities/nx-imports');
21
+ const args = yargsParser(process.argv, {
22
+ boolean: ['stop-agents-on-failure', 'use-dte-by-default'],
23
+ number: ['agent-count', 'command-count'],
24
+ string: ['stop-agents-after'],
25
+ default: {
26
+ useDteByDefault: true,
27
+ },
28
+ });
29
+ function startCiRun() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const branch = (0, environment_1.getBranch)();
32
+ const runGroup = (0, environment_1.getRunGroup)();
33
+ if (!runGroup) {
34
+ (0, print_run_group_error_1.printRunGroupError)();
35
+ process.exit(1);
36
+ }
37
+ if (environment_1.VERBOSE_LOGGING) {
38
+ output.note({
39
+ title: `Creating run group ${runGroup}`,
40
+ });
41
+ }
42
+ if (args.agentCount) {
43
+ // TODO: vsavkin: warn here once we finalize our batching strategy
44
+ }
45
+ if (args.commandCount) {
46
+ output.error({
47
+ title: `--command-count is deprecated. Use --stop-agents-after instead.`,
48
+ bodyLines: [`E.g., npx nx-cloud start-ci-run --stop-agents-after="e2e"`],
49
+ });
50
+ process.exit(1);
51
+ }
52
+ const options = JSON.parse(stripJsonComments((0, fs_1.readFileSync)(`${workspaceRoot}/nx.json`).toString())).tasksRunnerOptions.default.options;
53
+ const api = new run_group_api_1.RunGroupApi(options);
54
+ yield api.createRunGroup(branch, runGroup, args.stopAgentsOnFailure, args.agentCount, args.stopAgentsAfter);
55
+ if (args.useDteByDefault) {
56
+ (0, distributed_task_execution_detection_1.storeDteMarker)();
57
+ }
58
+ });
59
+ }
60
+ exports.startCiRun = startCiRun;
61
+ //# sourceMappingURL=start-ci-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-ci-run.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/commands/start-ci-run.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyD;AACzD,6DAIqC;AACrC,0EAAoE;AACpE,wDAAmD;AACnD,2BAAkC;AAClC,4CAA4C;AAC5C,+GAAsF;AAEtF,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AACxE,MAAM,IAAI,GAAQ,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;IACzD,MAAM,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;IACxC,MAAM,EAAE,CAAC,mBAAmB,CAAC;IAC7B,OAAO,EAAE;QACP,eAAe,EAAE,IAAI;KACtB;CACF,CAAC,CAAC;AAEH,SAAsB,UAAU;;QAC9B,MAAM,MAAM,GAAG,IAAA,uBAAS,GAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE;YACb,IAAA,0CAAkB,GAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,IAAI,6BAAe,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,sBAAsB,QAAQ,EAAE;aACxC,CAAC,CAAC;SACJ;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,kEAAkE;SACnE;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC;gBACX,KAAK,EAAE,iEAAiE;gBACxE,SAAS,EAAE,CAAC,2DAA2D,CAAC;aACzE,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,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;QAErC,MAAM,GAAG,GAAG,IAAI,2BAAW,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,GAAG,CAAC,cAAc,CACtB,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,CACrB,CAAC;QAEF,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAA,qDAAc,GAAE,CAAC;SAClB;IACH,CAAC;CAAA;AA3CD,gCA2CC"}
@@ -0,0 +1 @@
1
+ export declare function stopAllAgents(): Promise<void>;
@@ -0,0 +1,37 @@
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.stopAllAgents = void 0;
13
+ const stripJsonComments = require("strip-json-comments");
14
+ const environment_1 = require("../../utilities/environment");
15
+ const print_run_group_error_1 = require("../error/print-run-group-error");
16
+ const run_group_api_1 = require("../api/run-group.api");
17
+ const fs_1 = require("fs");
18
+ const { output } = require('../../utilities/nx-imports');
19
+ function stopAllAgents() {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const runGroup = (0, environment_1.getRunGroup)();
22
+ if (!runGroup) {
23
+ (0, print_run_group_error_1.printRunGroupError)();
24
+ process.exit(1);
25
+ }
26
+ if (environment_1.VERBOSE_LOGGING) {
27
+ output.note({
28
+ title: `Stopping all agents running tasks for run group ${runGroup}`,
29
+ });
30
+ }
31
+ const options = JSON.parse(stripJsonComments((0, fs_1.readFileSync)('nx.json').toString())).tasksRunnerOptions.default.options;
32
+ const api = new run_group_api_1.RunGroupApi(options);
33
+ yield api.completeRunGroup(runGroup);
34
+ });
35
+ }
36
+ exports.stopAllAgents = stopAllAgents;
37
+ //# sourceMappingURL=stop-all-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-all-agents.js","sourceRoot":"","sources":["../../../../../../../libs/nx-packages/nx-cloud/lib/core/commands/stop-all-agents.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyD;AACzD,6DAA2E;AAC3E,0EAAoE;AACpE,wDAAmD;AACnD,2BAAkC;AAClC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAEzD,SAAsB,aAAa;;QACjC,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE;YACb,IAAA,0CAAkB,GAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,IAAI,6BAAe,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,mDAAmD,QAAQ,EAAE;aACrE,CAAC,CAAC;SACJ;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,iBAAiB,CAAC,IAAA,iBAAY,EAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CACtD,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;QAErC,MAAM,GAAG,GAAG,IAAI,2BAAW,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;CAAA;AAlBD,sCAkBC"}
@@ -0,0 +1 @@
1
+ export declare function uploadAndShowRunDetails(): Promise<void>;
@@ -0,0 +1,60 @@
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.uploadAndShowRunDetails = void 0;
13
+ const environment_1 = require("../../utilities/environment");
14
+ const cloud_run_api_1 = require("../runners/cloud-enabled/cloud-run.api");
15
+ const message_reporter_1 = require("../terminal-output/message-reporter");
16
+ const fs_1 = require("fs");
17
+ const path_1 = require("path");
18
+ const id_generator_1 = require("../runners/cloud-enabled/id-generator");
19
+ const open = require("open");
20
+ const read_task_terminal_output_1 = require("../terminal-output/read-task-terminal-output");
21
+ const output_obfuscator_1 = require("../terminal-output/output-obfuscator");
22
+ const { workspaceRoot, output } = require('../../utilities/nx-imports');
23
+ function uploadRunDetails(options) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const errors = new message_reporter_1.MessageReporter(options);
26
+ const runContext = {};
27
+ const machineInfo = (0, environment_1.getMachineInfo)(options);
28
+ const api = new cloud_run_api_1.CloudRunApi(errors, runContext, options, machineInfo);
29
+ const directory = (0, environment_1.getNxCacheDirectory)(options);
30
+ const outputObfusactor = new output_obfuscator_1.OutputObfuscator(options.maskedProperties);
31
+ const runInfo = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(directory, 'run.json')).toString());
32
+ // we need to connect to cloud if not connected yet
33
+ const tasks = runInfo.tasks.map((t) => (Object.assign(Object.assign({}, t), { terminalOutput: (0, read_task_terminal_output_1.readTaskTerminalOutput)(directory, outputObfusactor, t.hash, t.cacheStatus, t.status) })));
34
+ const linkId = (0, id_generator_1.generateUniqueLinkId)();
35
+ yield api.endRun(runInfo.run, tasks, linkId);
36
+ return `${options.url || 'https://nx.app'}/runs/${linkId}`;
37
+ });
38
+ }
39
+ function uploadAndShowRunDetails() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const options = readOptions();
42
+ const url = yield uploadRunDetails(options);
43
+ output.success({
44
+ title: 'Successfully uploaded the run details',
45
+ bodyLines: [`View run details at ${url}`],
46
+ });
47
+ open(url);
48
+ });
49
+ }
50
+ exports.uploadAndShowRunDetails = uploadAndShowRunDetails;
51
+ function readOptions() {
52
+ var _a, _b, _c;
53
+ try {
54
+ return (_c = (_b = (_a = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(workspaceRoot, 'nx.json')).toString())) === null || _a === void 0 ? void 0 : _a.tasksRunnerOptions) === null || _b === void 0 ? void 0 : _b.default) === null || _c === void 0 ? void 0 : _c.options;
55
+ }
56
+ catch (e) {
57
+ return {};
58
+ }
59
+ }
60
+ //# sourceMappingURL=upload-and-show-run-details.js.map
@@ -0,0 +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,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;