lim 0.15.5 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/xcode/rbe.d.ts +3 -7
- package/dist/commands/xcode/rbe.d.ts.map +1 -1
- package/dist/commands/xcode/rbe.js +31 -106
- package/dist/commands/xcode/rbe.js.map +1 -1
- package/dist/lib/rbe-session.d.ts +0 -13
- package/dist/lib/rbe-session.d.ts.map +1 -1
- package/dist/lib/rbe-session.js +0 -15
- package/dist/lib/rbe-session.js.map +1 -1
- package/dist/lib/rbe-workspace.d.ts +7 -27
- package/dist/lib/rbe-workspace.d.ts.map +1 -1
- package/dist/lib/rbe-workspace.js +8 -40
- package/dist/lib/rbe-workspace.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/xcode/rbe/install.d.ts +0 -20
- package/dist/commands/xcode/rbe/install.d.ts.map +0 -1
- package/dist/commands/xcode/rbe/install.js +0 -128
- package/dist/commands/xcode/rbe/install.js.map +0 -1
- package/dist/lib/rbe-bep-watcher.d.ts +0 -41
- package/dist/lib/rbe-bep-watcher.d.ts.map +0 -1
- package/dist/lib/rbe-bep-watcher.js +0 -267
- package/dist/lib/rbe-bep-watcher.js.map +0 -1
|
@@ -9,11 +9,7 @@ export default class XcodeRbe extends BaseCommand {
|
|
|
9
9
|
daemon: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
10
|
stop: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
11
|
ios: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
-
'auto-install': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
target: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
-
'bep-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
12
|
serve: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
|
-
'workspace-root': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
13
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
14
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
15
|
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -29,9 +25,9 @@ export default class XcodeRbe extends BaseCommand {
|
|
|
29
25
|
*/
|
|
30
26
|
private stopBackgroundTunnel;
|
|
31
27
|
/**
|
|
32
|
-
* Create an iOS simulator and attach it to the RBE Xcode instance, so
|
|
33
|
-
*
|
|
34
|
-
*
|
|
28
|
+
* Create an iOS simulator and attach it to the RBE Xcode instance, so builds
|
|
29
|
+
* auto-install on it (server-side) and the user can watch it live. Prints the
|
|
30
|
+
* stream URL and returns the new simulator's instance id (recorded in the
|
|
35
31
|
* pidfile for --stop teardown).
|
|
36
32
|
*/
|
|
37
33
|
private createAndAttachSimulator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe.d.ts","sourceRoot":"","sources":["../../../src/commands/xcode/rbe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"rbe.d.ts","sourceRoot":"","sources":["../../../src/commands/xcode/rbe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAuBjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,OAAO,SAAqF;IACnG,MAAM,CAAC,WAAW,SAKwE;IAC1F,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MA8BV;IAEF,OAAO,CAAC,QAAQ,CAAyD;IAEnE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmP1B;;;;OAIG;YACW,oBAAoB;IAsElC;;;;;OAKG;YACW,wBAAwB;IAWtC;;;;;;;;;;OAUG;YACW,SAAS;IAUvB;;;OAGG;YACW,qBAAqB;IA6FnC,sDAAsD;YACxC,UAAU;IAOxB;;;;;;;;OAQG;YACW,SAAS;IAavB;;;;OAIG;YACW,WAAW;IAyDzB,iFAAiF;IACjF,OAAO,CAAC,UAAU;CAqDnB"}
|
|
@@ -13,7 +13,6 @@ const config_1 = require("../../lib/config");
|
|
|
13
13
|
const progress_1 = require("../../lib/progress");
|
|
14
14
|
const rbe_workspace_1 = require("../../lib/rbe-workspace");
|
|
15
15
|
const rbe_session_1 = require("../../lib/rbe-session");
|
|
16
|
-
const rbe_bep_watcher_1 = require("../../lib/rbe-bep-watcher");
|
|
17
16
|
class XcodeRbe extends base_command_1.BaseCommand {
|
|
18
17
|
constructor() {
|
|
19
18
|
super(...arguments);
|
|
@@ -29,34 +28,15 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
29
28
|
if (!flags.id) {
|
|
30
29
|
this.error('--serve requires --id (it is set automatically by the background launcher).');
|
|
31
30
|
}
|
|
32
|
-
// This detached process holds the only RBE tunnel.
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
// process, silently dropping Bazel's remote executor mid-build. Swallow them
|
|
36
|
-
// here so a watcher fault can never kill the tunnel; the tunnel's own
|
|
31
|
+
// This detached process holds the only RBE tunnel. Guard against a floating
|
|
32
|
+
// rejection (e.g. from the tunnel's reconnect machinery) reaching Node's
|
|
33
|
+
// default handler and dropping the tunnel mid-build; the tunnel's own
|
|
37
34
|
// terminal-disconnect path is handled in awaitTunnel.
|
|
38
35
|
installDaemonCrashGuards((msg) => console.error(`[lim] ${msg}`));
|
|
39
36
|
await this.withAuth(async () => {
|
|
40
37
|
const xcodeTarget = await this.resolveXcodeTarget(flags.id);
|
|
41
38
|
const client = await this.resolveXcodeClient(xcodeTarget);
|
|
42
|
-
|
|
43
|
-
const buildTarget = flags.target;
|
|
44
|
-
let watcher;
|
|
45
|
-
if (workspaceRoot && buildTarget) {
|
|
46
|
-
// The parent passes an already-absolute --bep-file; resolveBepPath also
|
|
47
|
-
// handles a manual --serve invocation with a relative path (the child's
|
|
48
|
-
// cwd is the parent's, not necessarily the workspace root).
|
|
49
|
-
const bepPath = (0, rbe_workspace_1.resolveBepPath)(workspaceRoot, flags['bep-file']);
|
|
50
|
-
watcher = (0, rbe_bep_watcher_1.startBepWatcher)({
|
|
51
|
-
bepPath,
|
|
52
|
-
target: buildTarget,
|
|
53
|
-
getClient: () => client,
|
|
54
|
-
log: (msg) => console.error(`[lim] ${msg}`),
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
// Close the watcher inside the tunnel teardown, BEFORE the tunnel/stack
|
|
58
|
-
// are stopped, so an in-flight install never races a dead stack.
|
|
59
|
-
await this.runTunnel(client, flags.port, watcher ? () => watcher.close() : undefined);
|
|
39
|
+
await this.runTunnel(client, flags.port);
|
|
60
40
|
});
|
|
61
41
|
return;
|
|
62
42
|
}
|
|
@@ -165,12 +145,9 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
165
145
|
this.error(err instanceof Error ? err.message : String(err));
|
|
166
146
|
}
|
|
167
147
|
}
|
|
168
|
-
// Where Bazel writes its build event log and the watcher reads it: a custom
|
|
169
|
-
// --bep-file (absolute) or the default under .limrun/.
|
|
170
|
-
const bepPath = (0, rbe_workspace_1.resolveBepPath)(workspaceRoot, flags['bep-file']);
|
|
171
148
|
let generated;
|
|
172
149
|
try {
|
|
173
|
-
generated = (0, rbe_workspace_1.writeRbeWorkspaceFiles)(workspaceRoot, xcodeVersion, flags.port
|
|
150
|
+
generated = (0, rbe_workspace_1.writeRbeWorkspaceFiles)(workspaceRoot, xcodeVersion, flags.port);
|
|
174
151
|
}
|
|
175
152
|
catch (err) {
|
|
176
153
|
await client.stopRbe().catch(() => { });
|
|
@@ -187,17 +164,9 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
187
164
|
const inferredTarget = (0, rbe_workspace_1.inferBuildTarget)(workspaceRoot);
|
|
188
165
|
const target = inferredTarget ?? '//your:target';
|
|
189
166
|
const buildCmd = `bazelisk --digest_function=sha256 build --config=limrun ${target}`;
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
//
|
|
193
|
-
const watchTarget = flags.target ?? inferredTarget ?? undefined;
|
|
194
|
-
const autoInstall = flags['auto-install'] && !!watchTarget;
|
|
195
|
-
if (flags['auto-install'] && !watchTarget) {
|
|
196
|
-
this.info('Auto-install is off: could not infer a single app target. Pass --target <label> to enable it.');
|
|
197
|
-
}
|
|
198
|
-
// --ios: create + attach a simulator so `lim xcode rbe install` installs on
|
|
199
|
-
// it and the stream URL is printed. Recorded in the pidfile so --stop tears
|
|
200
|
-
// it down too.
|
|
167
|
+
// --ios: create + attach a simulator so builds auto-install on it (server-side)
|
|
168
|
+
// and the stream URL is printed. Recorded in the pidfile so --stop tears it
|
|
169
|
+
// down too.
|
|
201
170
|
let simInstanceId;
|
|
202
171
|
if (flags.ios) {
|
|
203
172
|
try {
|
|
@@ -222,9 +191,6 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
222
191
|
xcodeVersion,
|
|
223
192
|
generated,
|
|
224
193
|
buildCmd,
|
|
225
|
-
autoInstall,
|
|
226
|
-
target: autoInstall ? watchTarget : undefined,
|
|
227
|
-
bepPath,
|
|
228
194
|
});
|
|
229
195
|
}
|
|
230
196
|
catch (err) {
|
|
@@ -259,20 +225,10 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
259
225
|
buildCmd,
|
|
260
226
|
instanceId,
|
|
261
227
|
background: false,
|
|
228
|
+
simulatorAttached: !!simInstanceId,
|
|
262
229
|
});
|
|
263
|
-
// Foreground auto-install: watch the BEP for the lifetime of this tunnel.
|
|
264
|
-
const watcher = autoInstall && watchTarget ?
|
|
265
|
-
(0, rbe_bep_watcher_1.startBepWatcher)({
|
|
266
|
-
bepPath,
|
|
267
|
-
target: watchTarget,
|
|
268
|
-
getClient: () => client,
|
|
269
|
-
log: (msg) => this.info(msg),
|
|
270
|
-
})
|
|
271
|
-
: undefined;
|
|
272
230
|
try {
|
|
273
|
-
|
|
274
|
-
// so an in-flight install never races a stopped stack.
|
|
275
|
-
await this.awaitTunnel(tunnel, client, watcher ? () => watcher.close() : undefined);
|
|
231
|
+
await this.awaitTunnel(tunnel, client);
|
|
276
232
|
}
|
|
277
233
|
finally {
|
|
278
234
|
await this.deleteSim(simInstanceId);
|
|
@@ -351,9 +307,9 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
351
307
|
}
|
|
352
308
|
}
|
|
353
309
|
/**
|
|
354
|
-
* Create an iOS simulator and attach it to the RBE Xcode instance, so
|
|
355
|
-
*
|
|
356
|
-
*
|
|
310
|
+
* Create an iOS simulator and attach it to the RBE Xcode instance, so builds
|
|
311
|
+
* auto-install on it (server-side) and the user can watch it live. Prints the
|
|
312
|
+
* stream URL and returns the new simulator's instance id (recorded in the
|
|
357
313
|
* pidfile for --stop teardown).
|
|
358
314
|
*/
|
|
359
315
|
async createAndAttachSimulator(client) {
|
|
@@ -402,11 +358,6 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
402
358
|
id: opts.instanceId,
|
|
403
359
|
port: opts.port,
|
|
404
360
|
apiKey,
|
|
405
|
-
// Pass the workspace + target (+ bep path) only when auto-install is on,
|
|
406
|
-
// so the child starts the BEP watcher; otherwise it just holds the tunnel.
|
|
407
|
-
...(opts.autoInstall && opts.target ?
|
|
408
|
-
{ workspaceRoot: opts.workspaceRoot, target: opts.target, bepFile: opts.bepPath }
|
|
409
|
-
: {}),
|
|
410
361
|
}), { detached: true, stdio: ['ignore', logFd, logFd] });
|
|
411
362
|
fs_1.default.closeSync(logFd);
|
|
412
363
|
child.unref();
|
|
@@ -455,11 +406,6 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
455
406
|
instanceId: opts.instanceId,
|
|
456
407
|
port: opts.port,
|
|
457
408
|
...(opts.simInstanceId ? { simInstanceId: opts.simInstanceId } : {}),
|
|
458
|
-
// Always record where the build event log is written (it follows --bep-file
|
|
459
|
-
// regardless of auto-install), so `lim xcode rbe install` finds it even with
|
|
460
|
-
// --no-auto-install. `target` is the watcher's, recorded only when watching.
|
|
461
|
-
bepFile: opts.bepPath,
|
|
462
|
-
...(opts.autoInstall && opts.target ? { target: opts.target } : {}),
|
|
463
409
|
});
|
|
464
410
|
this.printReady({
|
|
465
411
|
port: opts.port,
|
|
@@ -469,6 +415,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
469
415
|
buildCmd: opts.buildCmd,
|
|
470
416
|
instanceId: opts.instanceId,
|
|
471
417
|
background: true,
|
|
418
|
+
simulatorAttached: !!opts.simInstanceId,
|
|
472
419
|
pid,
|
|
473
420
|
logPath,
|
|
474
421
|
});
|
|
@@ -489,27 +436,23 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
489
436
|
* the child if it exits within a short liveness window, so a slow tunnel-open
|
|
490
437
|
* failure would otherwise leave the remote stack running with no owner.
|
|
491
438
|
*/
|
|
492
|
-
async runTunnel(client, port
|
|
439
|
+
async runTunnel(client, port) {
|
|
493
440
|
let tunnel;
|
|
494
441
|
try {
|
|
495
442
|
tunnel = await this.openTunnel(client, port);
|
|
496
443
|
}
|
|
497
444
|
catch (err) {
|
|
498
|
-
// The tunnel never opened, so there's no watcher steady state to drain, but
|
|
499
|
-
// a watcher may already be running — close it before stopping the stack.
|
|
500
|
-
if (beforeStop)
|
|
501
|
-
await beforeStop().catch(() => { });
|
|
502
445
|
await client.stopRbe().catch(() => { });
|
|
503
446
|
this.error(`Failed to open the remote-execution tunnel: ${err instanceof Error ? err.message : String(err)}`);
|
|
504
447
|
}
|
|
505
|
-
await this.awaitTunnel(tunnel, client
|
|
448
|
+
await this.awaitTunnel(tunnel, client);
|
|
506
449
|
}
|
|
507
450
|
/**
|
|
508
451
|
* Block on an already-open tunnel until a stop signal, then close it and
|
|
509
452
|
* best-effort stop the remote stack. Rejects if the tunnel reports a terminal
|
|
510
453
|
* disconnect (after its own reconnect attempts are exhausted).
|
|
511
454
|
*/
|
|
512
|
-
async awaitTunnel(tunnel, client
|
|
455
|
+
async awaitTunnel(tunnel, client) {
|
|
513
456
|
try {
|
|
514
457
|
await new Promise((resolve, reject) => {
|
|
515
458
|
const keepAlive = setInterval(() => { }, 1 << 30);
|
|
@@ -559,10 +502,6 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
559
502
|
});
|
|
560
503
|
}
|
|
561
504
|
finally {
|
|
562
|
-
// Drain the auto-install watcher first, so a registration in flight can't
|
|
563
|
-
// land against an already-closed tunnel / stopped stack.
|
|
564
|
-
if (beforeStop)
|
|
565
|
-
await beforeStop().catch(() => { });
|
|
566
505
|
tunnel.close();
|
|
567
506
|
await client.stopRbe().catch(() => { });
|
|
568
507
|
}
|
|
@@ -575,6 +514,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
575
514
|
port: opts.port,
|
|
576
515
|
xcodeVersion: opts.xcodeVersion,
|
|
577
516
|
workspaceRoot: opts.workspaceRoot,
|
|
517
|
+
simulatorAttached: opts.simulatorAttached,
|
|
578
518
|
generatedConfig: {
|
|
579
519
|
buildFile: opts.generated.buildFile,
|
|
580
520
|
bazelrcFragment: opts.generated.bazelrcFragment,
|
|
@@ -601,8 +541,11 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
601
541
|
this.info('Tunnel is running. Press Ctrl+C to stop.');
|
|
602
542
|
}
|
|
603
543
|
this.output('');
|
|
604
|
-
this.info(
|
|
605
|
-
'
|
|
544
|
+
this.info(opts.simulatorAttached ?
|
|
545
|
+
'The built .ipa stays in the instance cache and auto-installs on the attached simulator; ' +
|
|
546
|
+
'to download it to this machine, add --remote_download_outputs=toplevel to the build command.'
|
|
547
|
+
: 'The built .ipa stays in the instance cache; attach a simulator (--ios) to auto-install builds on it. ' +
|
|
548
|
+
'To download the .ipa to this machine, add --remote_download_outputs=toplevel to the build command.');
|
|
606
549
|
}
|
|
607
550
|
}
|
|
608
551
|
XcodeRbe.summary = 'Serve a local Bazel remote-execution endpoint backed by a Limrun Xcode instance';
|
|
@@ -639,28 +582,11 @@ XcodeRbe.flags = {
|
|
|
639
582
|
description: 'Also create an iOS simulator and attach it, so builds auto-install on it and you can watch it live. The simulator is torn down on --stop.',
|
|
640
583
|
default: false,
|
|
641
584
|
}),
|
|
642
|
-
'auto-install': core_1.Flags.boolean({
|
|
643
|
-
description: 'After each build, automatically install it on the attached simulator (and replay the last build when a simulator is attached later). Use --no-auto-install for a tunnel-only session (e.g. CI).',
|
|
644
|
-
default: true,
|
|
645
|
-
allowNo: true,
|
|
646
|
-
}),
|
|
647
|
-
target: core_1.Flags.string({
|
|
648
|
-
description: 'Build target to auto-install after each build (e.g. //App:App). Defaults to the inferred app target; required to auto-install when the workspace has multiple app targets.',
|
|
649
|
-
}),
|
|
650
|
-
'bep-file': core_1.Flags.string({
|
|
651
|
-
description: "Path for Bazel's build event log (--build_event_json_file), which the auto-install watcher reads " +
|
|
652
|
-
'after each build. Defaults to .limrun/bep.json; set it only if your build already writes the log ' +
|
|
653
|
-
'elsewhere. `lim xcode rbe install` reuses this path automatically.',
|
|
654
|
-
}),
|
|
655
585
|
serve: core_1.Flags.boolean({
|
|
656
586
|
hidden: true,
|
|
657
587
|
default: false,
|
|
658
588
|
description: 'Internal: run only the tunnel serve loop (used by the detached background process).',
|
|
659
589
|
}),
|
|
660
|
-
'workspace-root': core_1.Flags.string({
|
|
661
|
-
hidden: true,
|
|
662
|
-
description: 'Internal: workspace root passed to the detached serve process for the auto-install watcher.',
|
|
663
|
-
}),
|
|
664
590
|
};
|
|
665
591
|
exports.default = XcodeRbe;
|
|
666
592
|
/** Sends `signal` to `pid`, ignoring "already gone". Returns false if the process was absent. */
|
|
@@ -674,18 +600,17 @@ function signalIfAlive(pid, signal) {
|
|
|
674
600
|
}
|
|
675
601
|
}
|
|
676
602
|
/**
|
|
677
|
-
* Backstops the detached serve daemon.
|
|
678
|
-
*
|
|
679
|
-
*
|
|
680
|
-
*
|
|
681
|
-
*
|
|
682
|
-
*
|
|
683
|
-
*
|
|
684
|
-
* port with a dead tunnel and blocks restart.
|
|
603
|
+
* Backstops the detached serve daemon. A floating *rejection* here is almost
|
|
604
|
+
* always benign (e.g. the tunnel's reconnect machinery); log and continue rather
|
|
605
|
+
* than let Node's default crash drop the tunnel mid-build. A thrown *exception*
|
|
606
|
+
* that reaches the top level is a genuine fault we can't reason about: log and
|
|
607
|
+
* exit non-zero so the port frees and the next `lim xcode rbe` reaps the stale
|
|
608
|
+
* pidfile. That is far better than lingering as a zombie that holds the port with
|
|
609
|
+
* a dead tunnel and blocks restart.
|
|
685
610
|
*/
|
|
686
611
|
function installDaemonCrashGuards(log) {
|
|
687
612
|
process.on('unhandledRejection', (reason) => {
|
|
688
|
-
log(`
|
|
613
|
+
log(`daemon: ignoring unhandled rejection to keep the tunnel alive: ${String(reason)}`);
|
|
689
614
|
});
|
|
690
615
|
process.on('uncaughtException', (err) => {
|
|
691
616
|
log(`daemon: fatal uncaught exception, exiting so the tunnel can be restarted: ${err?.message ?? err}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe.js","sourceRoot":"","sources":["../../../src/commands/xcode/rbe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rbe.js","sourceRoot":"","sources":["../../../src/commands/xcode/rbe.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,21 +30,12 @@ export declare function waitForRbeRunning(client: Pick<XcodeClient, 'getRbe'>, i
|
|
|
30
30
|
* Builds the argv for the detached child that holds the tunnel: re-invokes this
|
|
31
31
|
* same CLI as `xcode rbe --serve --id <id> --port <port> [--api-key <key>]`.
|
|
32
32
|
* `scriptPath` is the CLI entry (process.argv[1]).
|
|
33
|
-
*
|
|
34
|
-
* When `workspaceRoot` and `target` are both present the child also starts the
|
|
35
|
-
* BEP auto-install watcher (watching `<workspaceRoot>/.limrun/bep.json` and
|
|
36
|
-
* registering the built `target`'s `.ipa` after each build). argv is the source
|
|
37
|
-
* of truth here because the child needs these at startup, before any pidfile is
|
|
38
|
-
* written.
|
|
39
33
|
*/
|
|
40
34
|
export declare function buildServeChildArgs(opts: {
|
|
41
35
|
scriptPath: string;
|
|
42
36
|
id: string;
|
|
43
37
|
port: number;
|
|
44
38
|
apiKey?: string;
|
|
45
|
-
workspaceRoot?: string;
|
|
46
|
-
target?: string;
|
|
47
|
-
bepFile?: string;
|
|
48
39
|
}): string[];
|
|
49
40
|
/**
|
|
50
41
|
* A running background tunnel's coordinates, persisted to `.limrun/rbe.pid` so
|
|
@@ -58,10 +49,6 @@ export type RbePidInfo = {
|
|
|
58
49
|
port: number;
|
|
59
50
|
/** iOS simulator created by `--ios`, torn down on --stop. Absent otherwise. */
|
|
60
51
|
simInstanceId?: string;
|
|
61
|
-
/** Build target the auto-install watcher tracks, when enabled. */
|
|
62
|
-
target?: string;
|
|
63
|
-
/** Absolute path to the build-event log the watcher reads (`--bep-file`); absent means the default. */
|
|
64
|
-
bepFile?: string;
|
|
65
52
|
};
|
|
66
53
|
export declare function rbePidFilePath(workspaceRoot: string): string;
|
|
67
54
|
export declare function writeRbePidFile(workspaceRoot: string, info: RbePidInfo): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-session.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAClD,eAAO,MAAM,YAAY,EAAE,KAAiE,CAAC;AAc7F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3E,OAAO,CAAC,CAAC,CAAC,CAoBZ;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EACnC,OAAO,EAAE,SAAS,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAYjF;AAED
|
|
1
|
+
{"version":3,"file":"rbe-session.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAClD,eAAO,MAAM,YAAY,EAAE,KAAiE,CAAC;AAc7F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3E,OAAO,CAAC,CAAC,CAAC,CAoBZ;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EACnC,OAAO,EAAE,SAAS,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAYjF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,EAAE,CAoBX;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE7E;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAUvE;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAM3D;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAezF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAc,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAajG"}
|
package/dist/lib/rbe-session.js
CHANGED
|
@@ -85,12 +85,6 @@ async function waitForRbeRunning(client, initial, opts = {}) {
|
|
|
85
85
|
* Builds the argv for the detached child that holds the tunnel: re-invokes this
|
|
86
86
|
* same CLI as `xcode rbe --serve --id <id> --port <port> [--api-key <key>]`.
|
|
87
87
|
* `scriptPath` is the CLI entry (process.argv[1]).
|
|
88
|
-
*
|
|
89
|
-
* When `workspaceRoot` and `target` are both present the child also starts the
|
|
90
|
-
* BEP auto-install watcher (watching `<workspaceRoot>/.limrun/bep.json` and
|
|
91
|
-
* registering the built `target`'s `.ipa` after each build). argv is the source
|
|
92
|
-
* of truth here because the child needs these at startup, before any pidfile is
|
|
93
|
-
* written.
|
|
94
88
|
*/
|
|
95
89
|
function buildServeChildArgs(opts) {
|
|
96
90
|
// --no-create: the child must never own instance creation. The parent already
|
|
@@ -108,15 +102,6 @@ function buildServeChildArgs(opts) {
|
|
|
108
102
|
'--port',
|
|
109
103
|
String(opts.port),
|
|
110
104
|
];
|
|
111
|
-
if (opts.workspaceRoot) {
|
|
112
|
-
args.push('--workspace-root', opts.workspaceRoot);
|
|
113
|
-
}
|
|
114
|
-
if (opts.target) {
|
|
115
|
-
args.push('--target', opts.target);
|
|
116
|
-
}
|
|
117
|
-
if (opts.bepFile) {
|
|
118
|
-
args.push('--bep-file', opts.bepFile);
|
|
119
|
-
}
|
|
120
105
|
if (opts.apiKey) {
|
|
121
106
|
args.push('--api-key', opts.apiKey);
|
|
122
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-session.js","sourceRoot":"","sources":["../../src/lib/rbe-session.ts"],"names":[],"mappings":";;;;;;AAyBA,4CAGC;AAMD,wCAuBC;AASD,8CAgBC;
|
|
1
|
+
{"version":3,"file":"rbe-session.js","sourceRoot":"","sources":["../../src/lib/rbe-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,19 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const LIMRUN_DIR = ".limrun";
|
|
10
10
|
export declare const TRY_IMPORT_LINE = "try-import %workspace%/.limrun/bazelrc";
|
|
11
|
-
/**
|
|
12
|
-
* Where Bazel writes its build-event log by default — under the self-gitignored
|
|
13
|
-
* `.limrun/`, the directory this module owns and writes the generated config
|
|
14
|
-
* into. Single source of truth for the default path the watcher reads and the
|
|
15
|
-
* generated bazelrc points `--build_event_json_file` at.
|
|
16
|
-
*/
|
|
17
|
-
export declare function defaultBepPath(workspaceRoot: string): string;
|
|
18
|
-
/**
|
|
19
|
-
* Resolves the BEP path for a run: an explicit `--bep-file` (made absolute
|
|
20
|
-
* against the invocation cwd, so it resolves regardless of bazel's cwd) or the
|
|
21
|
-
* default under `.limrun/`.
|
|
22
|
-
*/
|
|
23
|
-
export declare function resolveBepPath(workspaceRoot: string, bepFileFlag?: string): string;
|
|
24
11
|
/**
|
|
25
12
|
* Finds the Bazel workspace root by walking up from `startDir` to the first
|
|
26
13
|
* ancestor containing a MODULE.bazel / WORKSPACE / WORKSPACE.bazel, mirroring
|
|
@@ -131,18 +118,11 @@ export declare function renderXcodeConfigBuild(remoteVersionKey: string, emitLoa
|
|
|
131
118
|
* - PATH includes /usr/sbin:/sbin so genrules that probe `sysctl` (e.g.
|
|
132
119
|
* `hw.logicalcpu` for `make -j`) resolve it on the worker.
|
|
133
120
|
* - `--remote_download_outputs=minimal` keeps the built .ipa in the instance's
|
|
134
|
-
* CAS instead of downloading it;
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* the
|
|
138
|
-
*
|
|
139
|
-
* .ipa materialized locally (a command-line flag overrides this rc setting).
|
|
140
|
-
* - `--build_event_json_file` writes the Build Event Protocol to .limrun/bep.json;
|
|
141
|
-
* `lim xcode rbe install` reads the built target's .ipa CAS digest from it. The
|
|
142
|
-
* path is ABSOLUTE on purpose: Bazel expands `%workspace%` only in
|
|
143
|
-
* import/try-import, NOT in flag values (it would be taken literally and create
|
|
144
|
-
* a junk `%workspace%/` dir), and a relative path resolves against bazel's cwd
|
|
145
|
-
* rather than the workspace root.
|
|
121
|
+
* CAS instead of downloading it; the daemon auto-installs it server-side from
|
|
122
|
+
* there (driven by the BES stream), so the bytes never round-trip. The printed
|
|
123
|
+
* `lim xcode rbe` output tells users to add `--remote_download_outputs=toplevel`
|
|
124
|
+
* on the command line when they want the .ipa materialized locally (a
|
|
125
|
+
* command-line flag overrides this rc setting).
|
|
146
126
|
* - `--extra_execution_platforms` is emitted ONLY for non-mac clients: a Linux
|
|
147
127
|
* host has no auto-detected darwin execution platform, so the Apple/Swift
|
|
148
128
|
* toolchain (exec_compatible_with macos) needs one registered to route
|
|
@@ -163,7 +143,7 @@ export declare function renderXcodeConfigBuild(remoteVersionKey: string, emitLoa
|
|
|
163
143
|
* override hook, so callers can extend or override the generated config
|
|
164
144
|
* without editing this file or passing flags on the command line.
|
|
165
145
|
*/
|
|
166
|
-
export declare function renderLimrunBazelrc(port: number, versionKey: string, isMacClient: boolean
|
|
146
|
+
export declare function renderLimrunBazelrc(port: number, versionKey: string, isMacClient: boolean): string;
|
|
167
147
|
/**
|
|
168
148
|
* Idempotently ensures the workspace .bazelrc try-imports the generated
|
|
169
149
|
* fragment. Creates .bazelrc when missing. Returns true when the file changed.
|
|
@@ -179,5 +159,5 @@ export type RbeWorkspaceFiles = {
|
|
|
179
159
|
* try-import. The .gitignore containing "*" makes the directory self-ignoring
|
|
180
160
|
* so nothing else in the user's repo needs to change.
|
|
181
161
|
*/
|
|
182
|
-
export declare function writeRbeWorkspaceFiles(workspaceDir: string, xcodeVersionKey: string, port: number,
|
|
162
|
+
export declare function writeRbeWorkspaceFiles(workspaceDir: string, xcodeVersionKey: string, port: number, isMacClient?: boolean, bazelMajor?: number | null): RbeWorkspaceFiles;
|
|
183
163
|
//# sourceMappingURL=rbe-workspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-workspace.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,eAAe,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"rbe-workspace.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,eAAe,2CAA2C,CAAC;AAKxE;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYtE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBrE;AAqCD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAElE;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAmC3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CA4BlG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAiB7D;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,OAAuC,EACpD,UAAU,GAAE,MAAM,GAAG,IAA4C,GAChE,iBAAiB,CAcnB"}
|
|
@@ -4,8 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TRY_IMPORT_LINE = exports.LIMRUN_DIR = void 0;
|
|
7
|
-
exports.defaultBepPath = defaultBepPath;
|
|
8
|
-
exports.resolveBepPath = resolveBepPath;
|
|
9
7
|
exports.findBazelWorkspaceRoot = findBazelWorkspaceRoot;
|
|
10
8
|
exports.inferBuildTarget = inferBuildTarget;
|
|
11
9
|
exports.detectBazelMajorVersion = detectBazelMajorVersion;
|
|
@@ -27,23 +25,6 @@ const path_1 = __importDefault(require("path"));
|
|
|
27
25
|
exports.LIMRUN_DIR = '.limrun';
|
|
28
26
|
exports.TRY_IMPORT_LINE = 'try-import %workspace%/.limrun/bazelrc';
|
|
29
27
|
const TRY_IMPORT_COMMENT = '# Added by lim xcode rbe: loads the generated remote-execution config.';
|
|
30
|
-
/**
|
|
31
|
-
* Where Bazel writes its build-event log by default — under the self-gitignored
|
|
32
|
-
* `.limrun/`, the directory this module owns and writes the generated config
|
|
33
|
-
* into. Single source of truth for the default path the watcher reads and the
|
|
34
|
-
* generated bazelrc points `--build_event_json_file` at.
|
|
35
|
-
*/
|
|
36
|
-
function defaultBepPath(workspaceRoot) {
|
|
37
|
-
return path_1.default.join(workspaceRoot, exports.LIMRUN_DIR, 'bep.json');
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Resolves the BEP path for a run: an explicit `--bep-file` (made absolute
|
|
41
|
-
* against the invocation cwd, so it resolves regardless of bazel's cwd) or the
|
|
42
|
-
* default under `.limrun/`.
|
|
43
|
-
*/
|
|
44
|
-
function resolveBepPath(workspaceRoot, bepFileFlag) {
|
|
45
|
-
return bepFileFlag ? path_1.default.resolve(bepFileFlag) : defaultBepPath(workspaceRoot);
|
|
46
|
-
}
|
|
47
28
|
const WORKSPACE_MARKERS = ['MODULE.bazel', 'WORKSPACE', 'WORKSPACE.bazel'];
|
|
48
29
|
/**
|
|
49
30
|
* Finds the Bazel workspace root by walking up from `startDir` to the first
|
|
@@ -316,18 +297,11 @@ xcode_config(
|
|
|
316
297
|
* - PATH includes /usr/sbin:/sbin so genrules that probe `sysctl` (e.g.
|
|
317
298
|
* `hw.logicalcpu` for `make -j`) resolve it on the worker.
|
|
318
299
|
* - `--remote_download_outputs=minimal` keeps the built .ipa in the instance's
|
|
319
|
-
* CAS instead of downloading it;
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
* the
|
|
323
|
-
*
|
|
324
|
-
* .ipa materialized locally (a command-line flag overrides this rc setting).
|
|
325
|
-
* - `--build_event_json_file` writes the Build Event Protocol to .limrun/bep.json;
|
|
326
|
-
* `lim xcode rbe install` reads the built target's .ipa CAS digest from it. The
|
|
327
|
-
* path is ABSOLUTE on purpose: Bazel expands `%workspace%` only in
|
|
328
|
-
* import/try-import, NOT in flag values (it would be taken literally and create
|
|
329
|
-
* a junk `%workspace%/` dir), and a relative path resolves against bazel's cwd
|
|
330
|
-
* rather than the workspace root.
|
|
300
|
+
* CAS instead of downloading it; the daemon auto-installs it server-side from
|
|
301
|
+
* there (driven by the BES stream), so the bytes never round-trip. The printed
|
|
302
|
+
* `lim xcode rbe` output tells users to add `--remote_download_outputs=toplevel`
|
|
303
|
+
* on the command line when they want the .ipa materialized locally (a
|
|
304
|
+
* command-line flag overrides this rc setting).
|
|
331
305
|
* - `--extra_execution_platforms` is emitted ONLY for non-mac clients: a Linux
|
|
332
306
|
* host has no auto-detected darwin execution platform, so the Apple/Swift
|
|
333
307
|
* toolchain (exec_compatible_with macos) needs one registered to route
|
|
@@ -348,7 +322,7 @@ xcode_config(
|
|
|
348
322
|
* override hook, so callers can extend or override the generated config
|
|
349
323
|
* without editing this file or passing flags on the command line.
|
|
350
324
|
*/
|
|
351
|
-
function renderLimrunBazelrc(port, versionKey, isMacClient
|
|
325
|
+
function renderLimrunBazelrc(port, versionKey, isMacClient) {
|
|
352
326
|
const execPlatform = isMacClient ? '' : ('build:limrun --extra_execution_platforms=@build_bazel_apple_support//platforms:darwin_arm64\n');
|
|
353
327
|
return `# Generated by lim xcode rbe. Do not edit; rerun the command to refresh.
|
|
354
328
|
build:limrun --remote_executor=grpc://127.0.0.1:${port}
|
|
@@ -366,7 +340,6 @@ build:limrun --xcode_version_config=//.limrun:remote_xcode_config
|
|
|
366
340
|
build:limrun --xcode_version=${shortVersion(versionKey)}
|
|
367
341
|
build:limrun --ios_multi_cpus=sim_arm64
|
|
368
342
|
build:limrun --remote_download_outputs=minimal
|
|
369
|
-
build:limrun --build_event_json_file=${bepPath}
|
|
370
343
|
${execPlatform}build:limrun --action_env=PATH=/usr/bin:/bin:/usr/sbin:/sbin
|
|
371
344
|
|
|
372
345
|
# A user.limrun.bazelrc at the workspace root is try-imported last, so it can
|
|
@@ -402,7 +375,7 @@ function ensureTryImport(workspaceDir) {
|
|
|
402
375
|
* try-import. The .gitignore containing "*" makes the directory self-ignoring
|
|
403
376
|
* so nothing else in the user's repo needs to change.
|
|
404
377
|
*/
|
|
405
|
-
function writeRbeWorkspaceFiles(workspaceDir, xcodeVersionKey, port,
|
|
378
|
+
function writeRbeWorkspaceFiles(workspaceDir, xcodeVersionKey, port, isMacClient = process.platform === 'darwin', bazelMajor = detectBazelMajorVersion(workspaceDir)) {
|
|
406
379
|
const dir = path_1.default.join(workspaceDir, exports.LIMRUN_DIR);
|
|
407
380
|
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
408
381
|
const buildFile = path_1.default.join(dir, 'BUILD');
|
|
@@ -411,13 +384,8 @@ function writeRbeWorkspaceFiles(workspaceDir, xcodeVersionKey, port, bepFile = d
|
|
|
411
384
|
// longer native globals. On a known Bazel 8 workspace they ARE native (and
|
|
412
385
|
// loading would fail), so omit the loads.
|
|
413
386
|
const emitLoads = isBazel9OrLater(bazelMajor);
|
|
414
|
-
// The BEP path is absolute so it resolves regardless of bazel's cwd; the
|
|
415
|
-
// watcher and `lim xcode rbe install` read the same path. Defaults under the
|
|
416
|
-
// self-gitignored .limrun/; a custom --bep-file may point elsewhere, so make
|
|
417
|
-
// sure its parent exists before bazel tries to write it.
|
|
418
|
-
fs_1.default.mkdirSync(path_1.default.dirname(bepFile), { recursive: true });
|
|
419
387
|
fs_1.default.writeFileSync(buildFile, renderXcodeConfigBuild(xcodeVersionKey, emitLoads));
|
|
420
|
-
fs_1.default.writeFileSync(bazelrcFragment, renderLimrunBazelrc(port, xcodeVersionKey, isMacClient
|
|
388
|
+
fs_1.default.writeFileSync(bazelrcFragment, renderLimrunBazelrc(port, xcodeVersionKey, isMacClient));
|
|
421
389
|
fs_1.default.writeFileSync(path_1.default.join(dir, '.gitignore'), '*\n');
|
|
422
390
|
const bazelrcUpdated = ensureTryImport(workspaceDir);
|
|
423
391
|
return { buildFile, bazelrcFragment, bazelrcUpdated };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-workspace.js","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"rbe-workspace.js","sourceRoot":"","sources":["../../src/lib/rbe-workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lim",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Use remote XCode, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"lim": "./bin/run.js"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"test": "jest"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@limrun/api": "^0.33.
|
|
28
|
+
"@limrun/api": "^0.33.5",
|
|
29
29
|
"@oclif/core": "^4",
|
|
30
30
|
"cli-progress": "^3.12.0",
|
|
31
31
|
"cli-table3": "^0.6.5",
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { BaseCommand } from '../../../base-command';
|
|
2
|
-
export default class XcodeRbeInstall extends BaseCommand {
|
|
3
|
-
static summary: string;
|
|
4
|
-
static description: string;
|
|
5
|
-
static examples: string[];
|
|
6
|
-
static args: {
|
|
7
|
-
target: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
8
|
-
};
|
|
9
|
-
static flags: {
|
|
10
|
-
id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
-
'bep-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
-
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
-
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
-
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
|
-
workspace: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
-
};
|
|
18
|
-
run(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/commands/xcode/rbe/install.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,MAAM,CAAC,OAAO,SAA8E;IAC5F,MAAM,CAAC,WAAW,SAM8B;IAChD,MAAM,CAAC,QAAQ,WAA4F;IAE3G,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAYV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwG3B"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const fs_1 = __importDefault(require("fs"));
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const core_1 = require("@oclif/core");
|
|
9
|
-
const base_command_1 = require("../../../base-command");
|
|
10
|
-
const rbe_workspace_1 = require("../../../lib/rbe-workspace");
|
|
11
|
-
const rbe_session_1 = require("../../../lib/rbe-session");
|
|
12
|
-
class XcodeRbeInstall extends base_command_1.BaseCommand {
|
|
13
|
-
async run() {
|
|
14
|
-
const { args, flags } = await this.parse(XcodeRbeInstall);
|
|
15
|
-
// Never auto-create: install must hit the existing instance whose cache holds
|
|
16
|
-
// the just-built artifact. Without this, a vanished pinned instance would trip
|
|
17
|
-
// withAuth's NotFound recovery and spawn a fresh, empty Xcode instance (whose
|
|
18
|
-
// CAS lacks the .ipa), failing confusingly after leaking an instance.
|
|
19
|
-
this.setParsedFlags({ ...flags, create: false });
|
|
20
|
-
const workspaceRoot = (0, rbe_workspace_1.findBazelWorkspaceRoot)(process.cwd());
|
|
21
|
-
if (!workspaceRoot) {
|
|
22
|
-
this.error('Not inside a Bazel workspace. Run `lim xcode rbe install` from within the workspace you built.');
|
|
23
|
-
}
|
|
24
|
-
// The target may be omitted when the workspace has exactly one app target;
|
|
25
|
-
// otherwise it must be given explicitly (we never guess between several).
|
|
26
|
-
const buildTarget = args.target ?? (0, rbe_workspace_1.inferBuildTarget)(workspaceRoot);
|
|
27
|
-
if (!buildTarget) {
|
|
28
|
-
this.error('Could not infer a single app target. Pass the target explicitly, e.g. ' +
|
|
29
|
-
'`lim xcode rbe install //App:App`.');
|
|
30
|
-
}
|
|
31
|
-
// The generated bazelrc writes the build event log on every --config=limrun
|
|
32
|
-
// build; read the just-built target's .ipa digest from it. Prefer an explicit
|
|
33
|
-
// --bep-file, then the path `lim xcode rbe` recorded in the pidfile (in case a
|
|
34
|
-
// custom --bep-file was used), then the default under .limrun/.
|
|
35
|
-
const pidInfo = (0, rbe_session_1.readRbePidFile)(workspaceRoot);
|
|
36
|
-
const bepPath = (flags['bep-file'] ? path_1.default.resolve(flags['bep-file']) : undefined) ??
|
|
37
|
-
pidInfo?.bepFile ??
|
|
38
|
-
(0, rbe_workspace_1.defaultBepPath)(workspaceRoot);
|
|
39
|
-
let bepJson;
|
|
40
|
-
try {
|
|
41
|
-
bepJson = fs_1.default.readFileSync(bepPath, 'utf8');
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
this.error(`No build event log at ${bepPath}. Build first with --config=limrun ` +
|
|
45
|
-
`(e.g. \`bazelisk --digest_function=sha256 build --config=limrun ${buildTarget}\`), then re-run.`);
|
|
46
|
-
}
|
|
47
|
-
// Target the instance the background tunnel is serving for this workspace
|
|
48
|
-
// (recorded in .limrun/rbe.pid by `lim xcode rbe`), since that's the one
|
|
49
|
-
// whose CAS holds the build. An explicit --id wins; otherwise fall back to
|
|
50
|
-
// the pidfile, then to the most recent Xcode target.
|
|
51
|
-
const instanceId = flags.id ?? pidInfo?.instanceId;
|
|
52
|
-
await this.withAuth(async () => {
|
|
53
|
-
// Target an existing instance (do not create): install needs the instance
|
|
54
|
-
// whose cache holds the just-built artifact.
|
|
55
|
-
const target = await this.resolveXcodeTarget(instanceId);
|
|
56
|
-
const client = await this.resolveXcodeClient(target);
|
|
57
|
-
this.info(`Installing ${buildTarget} on the attached simulator...`);
|
|
58
|
-
// The SDK parses the .ipa's CAS digest out of the BEP and installs it; a
|
|
59
|
-
// missing target/.ipa or a non-SHA256 (BLAKE3) digest surfaces clearly here.
|
|
60
|
-
let result;
|
|
61
|
-
try {
|
|
62
|
-
result = await client.installRbeBuildFromBep({ bep: bepJson, target: buildTarget });
|
|
63
|
-
}
|
|
64
|
-
catch (err) {
|
|
65
|
-
this.error(err instanceof Error ? err.message : String(err));
|
|
66
|
-
}
|
|
67
|
-
if (flags.json) {
|
|
68
|
-
this.outputJson({ ...result, target: buildTarget });
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const appName = result.appName ?? result.ipaName;
|
|
72
|
-
if (!result.installed) {
|
|
73
|
-
// No simulator attached: nothing was installed. Attach one and re-run
|
|
74
|
-
// (e.g. `lim xcode rbe --ios`, then `lim xcode rbe install`).
|
|
75
|
-
this.output(`No simulator attached, so ${appName} was not installed. ` +
|
|
76
|
-
'Attach one (e.g. `lim xcode rbe --ios`) and re-run.');
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
const timing = result.syncDurationMs !== undefined ?
|
|
80
|
-
` (synced in ${result.syncDurationMs}ms, installed in ${result.installDurationMs ?? 0}ms)`
|
|
81
|
-
: '';
|
|
82
|
-
this.output(`Installed ${appName}${timing}`);
|
|
83
|
-
if (result.bundleId) {
|
|
84
|
-
this.output(`Bundle ID: ${result.bundleId}`);
|
|
85
|
-
}
|
|
86
|
-
// Point the stream at the attached simulator, not the Xcode host. For an
|
|
87
|
-
// iOS-backed target the target id is the simulator; otherwise resolve it
|
|
88
|
-
// from the attached simulator (install only reaches here with one attached).
|
|
89
|
-
// Best-effort: the install already succeeded, so never fail over the URL.
|
|
90
|
-
const simId = target.type === 'ios' ?
|
|
91
|
-
target.id
|
|
92
|
-
: await client
|
|
93
|
-
.getSimulator()
|
|
94
|
-
.then((s) => s.simulator?.iosInstanceId)
|
|
95
|
-
.catch(() => undefined);
|
|
96
|
-
if (simId) {
|
|
97
|
-
this.output(`iOS Simulator URL: ${this.consoleStreamUrl(simId)}`);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
XcodeRbeInstall.summary = 'Install a Bazel RBE build on the attached simulator (no client download)';
|
|
103
|
-
XcodeRbeInstall.description = 'After `bazelisk build --config=limrun <target>`, install the built app on the Xcode ' +
|
|
104
|
-
"instance's attached simulator. The .ipa stays in the instance cache (it is never downloaded " +
|
|
105
|
-
'to this machine); its CAS digest is read from the Bazel build event log (.limrun/bep.json) ' +
|
|
106
|
-
'and the instance fetches, unpacks, and diff-syncs the app to the simulator. Run it AFTER the ' +
|
|
107
|
-
'build, with a simulator attached (e.g. via `lim xcode rbe --ios`). The target is optional ' +
|
|
108
|
-
'when the workspace has a single app target.';
|
|
109
|
-
XcodeRbeInstall.examples = ['<%= config.bin %> xcode rbe install', '<%= config.bin %> xcode rbe install //App:App'];
|
|
110
|
-
XcodeRbeInstall.args = {
|
|
111
|
-
target: core_1.Args.string({
|
|
112
|
-
description: 'The Bazel target that was built (e.g. //App:App). Optional: inferred when the workspace has exactly one app target.',
|
|
113
|
-
required: false,
|
|
114
|
-
}),
|
|
115
|
-
};
|
|
116
|
-
XcodeRbeInstall.flags = {
|
|
117
|
-
...base_command_1.BaseCommand.baseFlags,
|
|
118
|
-
id: core_1.Flags.string({
|
|
119
|
-
description: 'Xcode instance ID to target. Defaults to the most recent standalone Xcode target (the one `lim xcode rbe` used).',
|
|
120
|
-
}),
|
|
121
|
-
'bep-file': core_1.Flags.string({
|
|
122
|
-
description: "Bazel build event log to read the built .ipa's CAS digest from. Defaults to the path " +
|
|
123
|
-
'`lim xcode rbe` recorded, then .limrun/bep.json; set it only for a standalone run (no running ' +
|
|
124
|
-
'`lim xcode rbe`) whose build wrote the log to a non-default path.',
|
|
125
|
-
}),
|
|
126
|
-
};
|
|
127
|
-
exports.default = XcodeRbeInstall;
|
|
128
|
-
//# sourceMappingURL=install.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/xcode/rbe/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { XcodeClient } from '@limrun/api';
|
|
2
|
-
/**
|
|
3
|
-
* Watches a workspace's `.limrun/bep.json` and, after each completed build,
|
|
4
|
-
* registers the built target's `.ipa` with the instance so it is installed on
|
|
5
|
-
* the attached simulator now (and replayed on a later attach). This is the
|
|
6
|
-
* client-side trigger for `lim xcode rbe` auto-install: only Bazel (on the
|
|
7
|
-
* client) knows the build finished and which CAS digest is the top-level `.ipa`,
|
|
8
|
-
* so the daemon holding the tunnel watches the BEP and the instance does the
|
|
9
|
-
* install server-side.
|
|
10
|
-
*
|
|
11
|
-
* Robustness is the priority: this runs inside the detached daemon that holds
|
|
12
|
-
* the only RBE tunnel, so every read/parse/HTTP error is caught and logged, and
|
|
13
|
-
* the watcher never throws into the daemon (a crash here would drop the tunnel
|
|
14
|
-
* mid-build). It is also idempotent: it acts once per Bazel invocation, even
|
|
15
|
-
* when a build reproduces an earlier `.ipa` digest (e.g. a `git stash` revert),
|
|
16
|
-
* because the instance keys "already installed" on the CAS digest.
|
|
17
|
-
*/
|
|
18
|
-
export type BepWatcherOptions = {
|
|
19
|
-
/** Absolute path to Bazel's build-event JSON log (`--build_event_json_file`). */
|
|
20
|
-
bepPath: string;
|
|
21
|
-
/** The build target to select from the BEP and install (e.g. //App:App). */
|
|
22
|
-
target: string;
|
|
23
|
-
/** Returns the XcodeClient to use; called per install so a refreshed client is picked up. */
|
|
24
|
-
getClient: () => XcodeClient;
|
|
25
|
-
/** Sink for status/diagnostic lines (the daemon redirects stdout/stderr to .limrun/rbe.log). */
|
|
26
|
-
log: (msg: string) => void;
|
|
27
|
-
/** Debounce window after a BEP change before acting. */
|
|
28
|
-
debounceMs?: number;
|
|
29
|
-
/** mtime-poll backstop interval (covers FSEvents coalescing/drops on macOS). */
|
|
30
|
-
pollIntervalMs?: number;
|
|
31
|
-
/** Delay before retrying a build after a transient install failure. */
|
|
32
|
-
retryDelayMs?: number;
|
|
33
|
-
/** Max transient-failure retries for one build before giving up (rebuild to retry). */
|
|
34
|
-
maxRetries?: number;
|
|
35
|
-
};
|
|
36
|
-
export type BepWatcher = {
|
|
37
|
-
/** Stops watching and awaits any in-flight registration. Idempotent. */
|
|
38
|
-
close: () => Promise<void>;
|
|
39
|
-
};
|
|
40
|
-
export declare function startBepWatcher(opts: BepWatcherOptions): BepWatcher;
|
|
41
|
-
//# sourceMappingURL=rbe-bep-watcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-bep-watcher.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-bep-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,SAAS,EAAE,MAAM,WAAW,CAAC;IAC7B,gGAAgG;IAChG,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,wEAAwE;IACxE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAuPnE"}
|
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.startBepWatcher = startBepWatcher;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const api_1 = require("@limrun/api");
|
|
10
|
-
function startBepWatcher(opts) {
|
|
11
|
-
const { bepPath, target, getClient, log, debounceMs = 400, pollIntervalMs = 1500, retryDelayMs = 5000, maxRetries = 3, } = opts;
|
|
12
|
-
const watchDir = path_1.default.dirname(bepPath);
|
|
13
|
-
const bepName = path_1.default.basename(bepPath);
|
|
14
|
-
// Act once per build. We dedupe on the Bazel invocation id (not the digest) so
|
|
15
|
-
// a rebuild that reproduces an earlier digest (git stash revert) still
|
|
16
|
-
// re-registers — the instance, keyed on the CAS digest, then reinstalls only
|
|
17
|
-
// if the on-sim digest actually differs. When a BEP carries no invocation id
|
|
18
|
-
// (older Bazel), we fall back to the digest hash so we still avoid re-acting on
|
|
19
|
-
// the same build's repeated change events.
|
|
20
|
-
let lastHandledInvocation;
|
|
21
|
-
let lastHandledHash;
|
|
22
|
-
let authExpired = false;
|
|
23
|
-
const loggedOnce = new Set();
|
|
24
|
-
let closed = false;
|
|
25
|
-
let dirty = false;
|
|
26
|
-
let currentTick = null;
|
|
27
|
-
// Bounded retry for transient install failures (the mtime/size poll only fires
|
|
28
|
-
// on a file change, so a settled build wouldn't otherwise be retried).
|
|
29
|
-
let retryTimer = null;
|
|
30
|
-
let retryInvocation;
|
|
31
|
-
let retryCount = 0;
|
|
32
|
-
let debounceTimer = null;
|
|
33
|
-
// Seed from the current file (if any) so the first poll doesn't spuriously fire,
|
|
34
|
-
// and so we notice a rewrite by size even when mtime granularity is coarse.
|
|
35
|
-
let lastMtimeMs = -1;
|
|
36
|
-
let lastSize = -1;
|
|
37
|
-
try {
|
|
38
|
-
const st = fs_1.default.statSync(bepPath);
|
|
39
|
-
lastMtimeMs = st.mtimeMs;
|
|
40
|
-
lastSize = st.size;
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
/* no BEP yet */
|
|
44
|
-
}
|
|
45
|
-
const logOnce = (key, msg) => {
|
|
46
|
-
if (loggedOnce.has(key))
|
|
47
|
-
return;
|
|
48
|
-
loggedOnce.add(key);
|
|
49
|
-
log(msg);
|
|
50
|
-
};
|
|
51
|
-
const trigger = () => {
|
|
52
|
-
if (closed)
|
|
53
|
-
return;
|
|
54
|
-
if (currentTick) {
|
|
55
|
-
// A tick is in flight; mark dirty so we re-run once it settles.
|
|
56
|
-
dirty = true;
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
currentTick = tick()
|
|
60
|
-
.catch((err) => log(`auto-install: unexpected error: ${errMsg(err)}`))
|
|
61
|
-
.finally(() => {
|
|
62
|
-
currentTick = null;
|
|
63
|
-
// A BEP change during the registration (e.g. a new build) set `dirty`;
|
|
64
|
-
// re-run so we converge on the latest on-disk build.
|
|
65
|
-
if (dirty && !closed) {
|
|
66
|
-
dirty = false;
|
|
67
|
-
trigger();
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
const onChange = () => {
|
|
72
|
-
if (closed)
|
|
73
|
-
return;
|
|
74
|
-
if (debounceTimer)
|
|
75
|
-
clearTimeout(debounceTimer);
|
|
76
|
-
debounceTimer = setTimeout(() => {
|
|
77
|
-
debounceTimer = null;
|
|
78
|
-
trigger();
|
|
79
|
-
}, debounceMs);
|
|
80
|
-
};
|
|
81
|
-
async function tick() {
|
|
82
|
-
if (authExpired)
|
|
83
|
-
return; // a detached daemon cannot relogin; stop trying.
|
|
84
|
-
if (closed)
|
|
85
|
-
return;
|
|
86
|
-
let bep;
|
|
87
|
-
try {
|
|
88
|
-
bep = await fs_1.default.promises.readFile(bepPath, 'utf8');
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
return; // file missing/unreadable; a later change re-triggers.
|
|
92
|
-
}
|
|
93
|
-
const completion = (0, api_1.inspectBuildCompletion)(bep);
|
|
94
|
-
if (!completion.complete || !completion.success) {
|
|
95
|
-
// Build still flushing, or it failed: leave prior state untouched. A
|
|
96
|
-
// failed build must not register anything.
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
if (completion.invocationId && completion.invocationId === lastHandledInvocation) {
|
|
100
|
-
return; // already handled this build.
|
|
101
|
-
}
|
|
102
|
-
// The BEP is fully flushed (gated on the terminal `lastMessage` event), so a
|
|
103
|
-
// parse failure here is definitive, not a not-yet-written race: this build
|
|
104
|
-
// either didn't produce our target or used wrong flags (BLAKE3 / local-only).
|
|
105
|
-
// Either way, mark the build handled so its remaining change events don't
|
|
106
|
-
// reprocess; log the wrong-flags case once.
|
|
107
|
-
let digest;
|
|
108
|
-
try {
|
|
109
|
-
digest = (0, api_1.parseTopLevelIpaDigest)(bep, target);
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
if (err instanceof api_1.RbeBepError && err.terminal) {
|
|
113
|
-
logOnce(`terminal:${completion.invocationId ?? 'no-invocation'}`, `auto-install: ${errMsg(err)}`);
|
|
114
|
-
}
|
|
115
|
-
markHandled(completion.invocationId, undefined);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
// Fall back to the digest for the rare BEP without an invocation id, so the
|
|
119
|
-
// same build's repeated change events don't re-register.
|
|
120
|
-
if (!completion.invocationId && digest.hash === lastHandledHash) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
await register(bep, digest, completion.invocationId);
|
|
124
|
-
}
|
|
125
|
-
function markHandled(invocationId, hash) {
|
|
126
|
-
// Update each dedupe key only when we actually have a value, so a terminal
|
|
127
|
-
// parse failure (which has an invocation id but no digest) doesn't wipe the
|
|
128
|
-
// hash-fallback key used for invocation-less BEP streams.
|
|
129
|
-
if (invocationId !== undefined)
|
|
130
|
-
lastHandledInvocation = invocationId;
|
|
131
|
-
if (hash !== undefined)
|
|
132
|
-
lastHandledHash = hash;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Schedules a re-attempt after a transient install failure (the build is not
|
|
136
|
-
* marked handled, so the re-triggered tick re-reads and retries the same
|
|
137
|
-
* build). Bounded per build: after maxRetries we give up and mark it handled so
|
|
138
|
-
* a permanent failure can't loop forever — the user rebuilds to retry.
|
|
139
|
-
*/
|
|
140
|
-
function scheduleRetry(invocationId, digest) {
|
|
141
|
-
if (closed)
|
|
142
|
-
return;
|
|
143
|
-
if (invocationId !== retryInvocation) {
|
|
144
|
-
retryInvocation = invocationId;
|
|
145
|
-
retryCount = 0;
|
|
146
|
-
}
|
|
147
|
-
if (retryCount >= maxRetries) {
|
|
148
|
-
logOnce(`giveup:${invocationId ?? digest.hash}`, `auto-install: gave up installing ${digest.ipaName} after ${maxRetries} retries; rebuild to retry.`);
|
|
149
|
-
markHandled(invocationId, digest.hash);
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
retryCount++;
|
|
153
|
-
if (retryTimer)
|
|
154
|
-
clearTimeout(retryTimer);
|
|
155
|
-
retryTimer = setTimeout(() => {
|
|
156
|
-
retryTimer = null;
|
|
157
|
-
trigger();
|
|
158
|
-
}, retryDelayMs);
|
|
159
|
-
if (typeof retryTimer.unref === 'function')
|
|
160
|
-
retryTimer.unref();
|
|
161
|
-
}
|
|
162
|
-
async function register(bep, digest, invocationId) {
|
|
163
|
-
let result;
|
|
164
|
-
try {
|
|
165
|
-
result = await getClient().installRbeBuildFromBep({ bep, target });
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
if (isAuthError(err)) {
|
|
169
|
-
authExpired = true;
|
|
170
|
-
logOnce('auth', 'auto-install: session expired; restart `lim xcode rbe` to resume auto-install.');
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
// Transient (network/instance blip). The mtime/size poll won't re-fire for
|
|
174
|
-
// a settled build, so schedule a bounded retry rather than dropping it until
|
|
175
|
-
// the next build.
|
|
176
|
-
log(`auto-install: failed to install ${digest.ipaName}: ${errMsg(err)}`);
|
|
177
|
-
scheduleRetry(invocationId, digest);
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
// The build is handled — don't retry it on the next change.
|
|
181
|
-
markHandled(invocationId, digest.hash);
|
|
182
|
-
if (result.installed) {
|
|
183
|
-
const timing = result.syncDurationMs !== undefined ?
|
|
184
|
-
` (synced ${result.syncDurationMs}ms, installed ${result.installDurationMs ?? 0}ms)`
|
|
185
|
-
: '';
|
|
186
|
-
log(`auto-install: installed ${result.appName ?? digest.ipaName}${timing}`);
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
log(`auto-install: recorded ${digest.ipaName}; will install when a simulator is attached.`);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// fs.watch on the directory (Bazel truncates+rewrites bep.json, changing the
|
|
193
|
-
// inode, so watching the file path directly is unreliable). Filter to bep.json.
|
|
194
|
-
let watcher = null;
|
|
195
|
-
try {
|
|
196
|
-
watcher = fs_1.default.watch(watchDir, (_event, filename) => {
|
|
197
|
-
if (!filename || path_1.default.basename(filename.toString()) === bepName)
|
|
198
|
-
onChange();
|
|
199
|
-
});
|
|
200
|
-
watcher.on('error', (err) => log(`auto-install: watch error: ${errMsg(err)}`));
|
|
201
|
-
}
|
|
202
|
-
catch (err) {
|
|
203
|
-
log(`auto-install: could not watch ${watchDir}: ${errMsg(err)}`);
|
|
204
|
-
}
|
|
205
|
-
// mtime-poll backstop: macOS FSEvents can coalesce or drop the single
|
|
206
|
-
// completion event, so also poll the BEP's mtime and act on a change.
|
|
207
|
-
const poll = setInterval(() => {
|
|
208
|
-
fs_1.default.promises
|
|
209
|
-
.stat(bepPath)
|
|
210
|
-
.then((st) => {
|
|
211
|
-
// Compare size too: a fast cached rebuild's truncate+rewrite can land
|
|
212
|
-
// within one mtime tick on coarse-granularity filesystems.
|
|
213
|
-
if (st.mtimeMs !== lastMtimeMs || st.size !== lastSize) {
|
|
214
|
-
lastMtimeMs = st.mtimeMs;
|
|
215
|
-
lastSize = st.size;
|
|
216
|
-
onChange();
|
|
217
|
-
}
|
|
218
|
-
})
|
|
219
|
-
.catch(() => {
|
|
220
|
-
/* no BEP yet */
|
|
221
|
-
});
|
|
222
|
-
}, pollIntervalMs);
|
|
223
|
-
// Don't let the poll timer keep the event loop alive on its own.
|
|
224
|
-
if (typeof poll.unref === 'function')
|
|
225
|
-
poll.unref();
|
|
226
|
-
// Catch a build that completed before the watcher started (e.g. daemon restart).
|
|
227
|
-
trigger();
|
|
228
|
-
return {
|
|
229
|
-
async close() {
|
|
230
|
-
closed = true;
|
|
231
|
-
if (debounceTimer)
|
|
232
|
-
clearTimeout(debounceTimer);
|
|
233
|
-
if (retryTimer)
|
|
234
|
-
clearTimeout(retryTimer);
|
|
235
|
-
clearInterval(poll);
|
|
236
|
-
watcher?.close();
|
|
237
|
-
if (currentTick) {
|
|
238
|
-
try {
|
|
239
|
-
await currentTick;
|
|
240
|
-
}
|
|
241
|
-
catch {
|
|
242
|
-
/* already logged */
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
},
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
function errMsg(err) {
|
|
249
|
-
return err instanceof Error ? err.message : String(err);
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Detects an expired/invalid session (HTTP 401). The SDK throws a typed
|
|
253
|
-
* AuthenticationError (status 401) on some paths; the instance-direct path
|
|
254
|
-
* (installRbeBuildFromBep) instead throws a plain Error whose message is
|
|
255
|
-
* `"<op> failed: <status> <body>"`. Match the status POSITION (`failed: 401`),
|
|
256
|
-
* not a bare `401` anywhere — a transient 5xx whose body merely contains "401"
|
|
257
|
-
* (a trace id, a JSON offset) must not latch auto-install off.
|
|
258
|
-
*/
|
|
259
|
-
function isAuthError(err) {
|
|
260
|
-
if (err && typeof err === 'object') {
|
|
261
|
-
const e = err;
|
|
262
|
-
if (e.name === 'AuthenticationError' || e.status === 401)
|
|
263
|
-
return true;
|
|
264
|
-
}
|
|
265
|
-
return /\bfailed: 401\b/.test(errMsg(err));
|
|
266
|
-
}
|
|
267
|
-
//# sourceMappingURL=rbe-bep-watcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rbe-bep-watcher.js","sourceRoot":"","sources":["../../src/lib/rbe-bep-watcher.ts"],"names":[],"mappings":"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"}
|