@lage-run/cli 0.19.0 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +79 -1
- package/CHANGELOG.md +26 -2
- package/lib/commands/server/action.js +1 -1
- package/lib/commands/server/index.js +7 -0
- package/lib/commands/server/lageService.d.ts +1 -1
- package/lib/commands/server/lageService.js +19 -14
- package/lib/commands/server/singleTargetWorker.d.ts +1 -0
- package/lib/commands/server/singleTargetWorker.js +24 -0
- package/package.json +8 -7
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,85 @@
|
|
|
2
2
|
"name": "@lage-run/cli",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Wed, 11 Sep 2024 20:30:17 GMT",
|
|
6
|
+
"version": "0.19.2",
|
|
7
|
+
"tag": "@lage-run/cli_v0.19.2",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "beachball",
|
|
12
|
+
"package": "@lage-run/cli",
|
|
13
|
+
"comment": "Bump @lage-run/cache to v1.3.2",
|
|
14
|
+
"commit": "not available"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "beachball",
|
|
18
|
+
"package": "@lage-run/cli",
|
|
19
|
+
"comment": "Bump @lage-run/config to v0.4.1",
|
|
20
|
+
"commit": "not available"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"author": "beachball",
|
|
24
|
+
"package": "@lage-run/cli",
|
|
25
|
+
"comment": "Bump @lage-run/hasher to v1.3.2",
|
|
26
|
+
"commit": "not available"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"author": "beachball",
|
|
30
|
+
"package": "@lage-run/cli",
|
|
31
|
+
"comment": "Bump @lage-run/logger to v1.3.1",
|
|
32
|
+
"commit": "not available"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"author": "beachball",
|
|
36
|
+
"package": "@lage-run/cli",
|
|
37
|
+
"comment": "Bump @lage-run/reporters to v1.2.9",
|
|
38
|
+
"commit": "not available"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"author": "beachball",
|
|
42
|
+
"package": "@lage-run/cli",
|
|
43
|
+
"comment": "Bump @lage-run/scheduler to v1.2.12",
|
|
44
|
+
"commit": "not available"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"author": "beachball",
|
|
48
|
+
"package": "@lage-run/cli",
|
|
49
|
+
"comment": "Bump @lage-run/worker-threads-pool to v0.8.1",
|
|
50
|
+
"commit": "not available"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"date": "Sat, 07 Sep 2024 00:01:57 GMT",
|
|
57
|
+
"version": "0.19.1",
|
|
58
|
+
"tag": "@lage-run/cli_v0.19.1",
|
|
59
|
+
"comments": {
|
|
60
|
+
"patch": [
|
|
61
|
+
{
|
|
62
|
+
"author": "kchau@microsoft.com",
|
|
63
|
+
"package": "@lage-run/cli",
|
|
64
|
+
"commit": "fb00e0249a448bd0ab09a0f68e9ea3456d2a7152",
|
|
65
|
+
"comment": "adding parallelism to server"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"author": "beachball",
|
|
69
|
+
"package": "@lage-run/cli",
|
|
70
|
+
"comment": "Bump @lage-run/config to v0.4.0",
|
|
71
|
+
"commit": "not available"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"author": "beachball",
|
|
75
|
+
"package": "@lage-run/cli",
|
|
76
|
+
"comment": "Bump @lage-run/scheduler to v1.2.11",
|
|
77
|
+
"commit": "not available"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"date": "Fri, 06 Sep 2024 20:03:01 GMT",
|
|
6
84
|
"version": "0.19.0",
|
|
7
85
|
"tag": "@lage-run/cli_v0.19.0",
|
|
8
86
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
# Change Log - @lage-run/cli
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 11 Sep 2024 20:30:17 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.19.2
|
|
8
|
+
|
|
9
|
+
Wed, 11 Sep 2024 20:30:17 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- Bump @lage-run/cache to v1.3.2
|
|
14
|
+
- Bump @lage-run/config to v0.4.1
|
|
15
|
+
- Bump @lage-run/hasher to v1.3.2
|
|
16
|
+
- Bump @lage-run/logger to v1.3.1
|
|
17
|
+
- Bump @lage-run/reporters to v1.2.9
|
|
18
|
+
- Bump @lage-run/scheduler to v1.2.12
|
|
19
|
+
- Bump @lage-run/worker-threads-pool to v0.8.1
|
|
20
|
+
|
|
21
|
+
## 0.19.1
|
|
22
|
+
|
|
23
|
+
Sat, 07 Sep 2024 00:01:57 GMT
|
|
24
|
+
|
|
25
|
+
### Patches
|
|
26
|
+
|
|
27
|
+
- adding parallelism to server (kchau@microsoft.com)
|
|
28
|
+
- Bump @lage-run/config to v0.4.0
|
|
29
|
+
- Bump @lage-run/scheduler to v1.2.11
|
|
30
|
+
|
|
7
31
|
## 0.19.0
|
|
8
32
|
|
|
9
|
-
Fri, 06 Sep 2024 20:
|
|
33
|
+
Fri, 06 Sep 2024 20:03:01 GMT
|
|
10
34
|
|
|
11
35
|
### Minor changes
|
|
12
36
|
|
|
@@ -59,7 +59,7 @@ async function workerAction(options, command) {
|
|
|
59
59
|
tasks,
|
|
60
60
|
packageInfos
|
|
61
61
|
});
|
|
62
|
-
const lageService = await (0, _lageService.createLageService)(targetGraph, logger, config.npmClient);
|
|
62
|
+
const lageService = await (0, _lageService.createLageService)(targetGraph, logger, config.npmClient, options.concurrency ?? config.concurrency);
|
|
63
63
|
const server = await rpc.createServer(lageService);
|
|
64
64
|
logger.info(`Server listening on http://${host}:${port}`);
|
|
65
65
|
await server.listen({
|
|
@@ -8,10 +8,17 @@ Object.defineProperty(exports, "serverCommand", {
|
|
|
8
8
|
return serverCommand;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
const _os = /*#__PURE__*/ _interop_require_default(require("os"));
|
|
11
12
|
const _commander = require("commander");
|
|
12
13
|
const _action = require("./action.js");
|
|
13
14
|
const _addLoggerOptions = require("../addLoggerOptions.js");
|
|
15
|
+
function _interop_require_default(obj) {
|
|
16
|
+
return obj && obj.__esModule ? obj : {
|
|
17
|
+
default: obj
|
|
18
|
+
};
|
|
19
|
+
}
|
|
14
20
|
const serverCommand = new _commander.Command("server");
|
|
21
|
+
serverCommand.option("-c|--concurrency <number>", "max jobs to run at a time", (v)=>parseInt(v), _os.default.cpus().length - 1);
|
|
15
22
|
serverCommand.option("-h|--host <host>", "lage server host", "localhost");
|
|
16
23
|
serverCommand.option("-p|--port <port>", "lage worker server port", (v)=>parseInt(v), 5332);
|
|
17
24
|
(0, _addLoggerOptions.addLoggerOptions)(serverCommand).action(_action.workerAction);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Logger } from "@lage-run/logger";
|
|
2
2
|
import type { ILageService } from "@lage-run/rpc";
|
|
3
3
|
import { type TargetGraph } from "@lage-run/target-graph";
|
|
4
|
-
export declare function createLageService(targetGraph: TargetGraph, logger: Logger, npmClient: string): Promise<ILageService>;
|
|
4
|
+
export declare function createLageService(targetGraph: TargetGraph, logger: Logger, npmClient: string, maxWorkers?: number): Promise<ILageService>;
|
|
@@ -8,12 +8,17 @@ Object.defineProperty(exports, "createLageService", {
|
|
|
8
8
|
return createLageService;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _runners = require("@lage-run/runners");
|
|
12
11
|
const _targetgraph = require("@lage-run/target-graph");
|
|
13
|
-
async function createLageService(targetGraph, logger, npmClient) {
|
|
12
|
+
async function createLageService(targetGraph, logger, npmClient, maxWorkers) {
|
|
13
|
+
logger.info(`Server started with ${maxWorkers} workers`);
|
|
14
|
+
const poolModule = (await import("@lage-run/worker-threads-pool")).default;
|
|
15
|
+
const pool = new poolModule.WorkerPool({
|
|
16
|
+
script: require.resolve("./singleTargetWorker.js"),
|
|
17
|
+
maxWorkers
|
|
18
|
+
});
|
|
14
19
|
return {
|
|
15
20
|
async runTarget (request) {
|
|
16
|
-
const
|
|
21
|
+
const runners = {
|
|
17
22
|
npmScript: {
|
|
18
23
|
script: require.resolve("../run/runners/NpmScriptRunner.js"),
|
|
19
24
|
options: {
|
|
@@ -33,7 +38,6 @@ async function createLageService(targetGraph, logger, npmClient) {
|
|
|
33
38
|
options: {}
|
|
34
39
|
}
|
|
35
40
|
};
|
|
36
|
-
const runnerPicker = new _runners.TargetRunnerPicker(pickerOptions);
|
|
37
41
|
if (!targetGraph.targets.has((0, _targetgraph.getTargetId)(request.packageName, request.task))) {
|
|
38
42
|
logger.error(`Target not found: ${request.packageName}#${request.task}`);
|
|
39
43
|
return {
|
|
@@ -43,17 +47,18 @@ async function createLageService(targetGraph, logger, npmClient) {
|
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
49
|
const target = targetGraph.targets.get((0, _targetgraph.getTargetId)(request.packageName, request.task));
|
|
46
|
-
const
|
|
50
|
+
const task = {
|
|
51
|
+
target,
|
|
52
|
+
runners
|
|
53
|
+
};
|
|
47
54
|
try {
|
|
48
|
-
|
|
49
|
-
logger.info(`
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
logger.info(`Finished target ${request.packageName}#${request.task}`);
|
|
56
|
-
}
|
|
55
|
+
await pool.exec(task, 0, (worker, stdout, stderr)=>{
|
|
56
|
+
logger.info(`[${worker.threadId}] ${request.packageName}#${request.task} start`);
|
|
57
|
+
stdout.pipe(process.stdout);
|
|
58
|
+
stderr.pipe(process.stderr);
|
|
59
|
+
}, (worker)=>{
|
|
60
|
+
logger.info(`[${worker.threadId}] ${request.packageName}#${request.task} end`);
|
|
61
|
+
});
|
|
57
62
|
return {
|
|
58
63
|
packageName: request.packageName,
|
|
59
64
|
task: request.task,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _workerthreadspool = require("@lage-run/worker-threads-pool");
|
|
6
|
+
const _runners = require("@lage-run/runners");
|
|
7
|
+
(async ()=>{
|
|
8
|
+
async function run(data, abortSignal) {
|
|
9
|
+
let value = undefined;
|
|
10
|
+
const runnerPicker = new _runners.TargetRunnerPicker(data.runners);
|
|
11
|
+
const runner = await runnerPicker.pick(data.target);
|
|
12
|
+
value = await runner.run({
|
|
13
|
+
target: data.target,
|
|
14
|
+
weight: 0,
|
|
15
|
+
abortSignal
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
skipped: false,
|
|
19
|
+
hash: undefined,
|
|
20
|
+
value
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
(0, _workerthreadspool.registerWorker)(run);
|
|
24
|
+
})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lage-run/cli",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.2",
|
|
4
4
|
"description": "Command Line Interface for Lage",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,16 +20,17 @@
|
|
|
20
20
|
"lint": "monorepo-scripts lint"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@lage-run/cache": "^1.3.
|
|
24
|
-
"@lage-run/config": "^0.
|
|
25
|
-
"@lage-run/hasher": "^1.3.
|
|
26
|
-
"@lage-run/logger": "^1.3.
|
|
27
|
-
"@lage-run/reporters": "^1.2.
|
|
23
|
+
"@lage-run/cache": "^1.3.2",
|
|
24
|
+
"@lage-run/config": "^0.4.1",
|
|
25
|
+
"@lage-run/hasher": "^1.3.2",
|
|
26
|
+
"@lage-run/logger": "^1.3.1",
|
|
27
|
+
"@lage-run/reporters": "^1.2.9",
|
|
28
28
|
"@lage-run/rpc": "^1.1.0",
|
|
29
29
|
"@lage-run/runners": "^1.0.1",
|
|
30
|
-
"@lage-run/scheduler": "^1.2.
|
|
30
|
+
"@lage-run/scheduler": "^1.2.12",
|
|
31
31
|
"@lage-run/scheduler-types": "^0.3.14",
|
|
32
32
|
"@lage-run/target-graph": "^0.8.9",
|
|
33
|
+
"@lage-run/worker-threads-pool": "^0.8.1",
|
|
33
34
|
"chokidar": "3.5.3",
|
|
34
35
|
"commander": "9.5.0",
|
|
35
36
|
"execa": "5.1.1",
|