lim 0.14.5 → 0.14.6
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/install.d.ts +1 -0
- package/dist/commands/xcode/rbe/install.d.ts.map +1 -1
- package/dist/commands/xcode/rbe/install.js +14 -4
- package/dist/commands/xcode/rbe/install.js.map +1 -1
- package/dist/commands/xcode/rbe.d.ts +4 -0
- package/dist/commands/xcode/rbe.d.ts.map +1 -1
- package/dist/commands/xcode/rbe.js +122 -13
- package/dist/commands/xcode/rbe.js.map +1 -1
- package/dist/lib/rbe-bep-watcher.d.ts +41 -0
- package/dist/lib/rbe-bep-watcher.d.ts.map +1 -0
- package/dist/lib/rbe-bep-watcher.js +267 -0
- package/dist/lib/rbe-bep-watcher.js.map +1 -0
- package/dist/lib/rbe-session.d.ts +13 -0
- package/dist/lib/rbe-session.d.ts.map +1 -1
- package/dist/lib/rbe-session.js +15 -0
- package/dist/lib/rbe-session.js.map +1 -1
- package/dist/lib/rbe-workspace.d.ts +14 -1
- package/dist/lib/rbe-workspace.d.ts.map +1 -1
- package/dist/lib/rbe-workspace.js +25 -5
- package/dist/lib/rbe-workspace.js.map +1 -1
- package/package.json +4 -3
|
@@ -8,6 +8,7 @@ export default class XcodeRbeInstall extends BaseCommand {
|
|
|
8
8
|
};
|
|
9
9
|
static flags: {
|
|
10
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>;
|
|
11
12
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
13
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
14
|
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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"}
|
|
@@ -28,9 +28,14 @@ class XcodeRbeInstall extends base_command_1.BaseCommand {
|
|
|
28
28
|
this.error('Could not infer a single app target. Pass the target explicitly, e.g. ' +
|
|
29
29
|
'`lim xcode rbe install //App:App`.');
|
|
30
30
|
}
|
|
31
|
-
// The generated bazelrc writes the build event log
|
|
32
|
-
//
|
|
33
|
-
|
|
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);
|
|
34
39
|
let bepJson;
|
|
35
40
|
try {
|
|
36
41
|
bepJson = fs_1.default.readFileSync(bepPath, 'utf8');
|
|
@@ -43,7 +48,7 @@ class XcodeRbeInstall extends base_command_1.BaseCommand {
|
|
|
43
48
|
// (recorded in .limrun/rbe.pid by `lim xcode rbe`), since that's the one
|
|
44
49
|
// whose CAS holds the build. An explicit --id wins; otherwise fall back to
|
|
45
50
|
// the pidfile, then to the most recent Xcode target.
|
|
46
|
-
const instanceId = flags.id ??
|
|
51
|
+
const instanceId = flags.id ?? pidInfo?.instanceId;
|
|
47
52
|
await this.withAuth(async () => {
|
|
48
53
|
// Target an existing instance (do not create): install needs the instance
|
|
49
54
|
// whose cache holds the just-built artifact.
|
|
@@ -113,6 +118,11 @@ XcodeRbeInstall.flags = {
|
|
|
113
118
|
id: core_1.Flags.string({
|
|
114
119
|
description: 'Xcode instance ID to target. Defaults to the most recent standalone Xcode target (the one `lim xcode rbe` used).',
|
|
115
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
|
+
}),
|
|
116
126
|
};
|
|
117
127
|
exports.default = XcodeRbeInstall;
|
|
118
128
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/xcode/rbe/install.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,sCAA0C;AAC1C,wDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/xcode/rbe/install.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,sCAA0C;AAC1C,wDAAoD;AACpD,8DAAsG;AACtG,0DAA0D;AAE1D,MAAqB,eAAgB,SAAQ,0BAAW;IAiCtD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1D,8EAA8E;QAC9E,+EAA+E;QAC/E,8EAA8E;QAC9E,sEAAsE;QACtE,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAA,sCAAsB,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CACR,gGAAgG,CACjG,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,IAAA,gCAAgB,EAAC,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CACR,wEAAwE;gBACtE,oCAAoC,CACvC,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,8EAA8E;QAC9E,+EAA+E;QAC/E,gEAAgE;QAChE,MAAM,OAAO,GAAG,IAAA,4BAAc,EAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,OAAO,GACX,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,OAAO,EAAE,OAAO;YAChB,IAAA,8BAAc,EAAC,aAAa,CAAC,CAAC;QAChC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CACR,yBAAyB,OAAO,qCAAqC;gBACnE,mEAAmE,WAAW,mBAAmB,CACpG,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,qDAAqD;QACrD,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,IAAI,OAAO,EAAE,UAAU,CAAC;QAEnD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,0EAA0E;YAC1E,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,cAAc,WAAW,+BAA+B,CAAC,CAAC;YACpE,yEAAyE;YACzE,6EAA6E;YAC7E,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACtF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,sEAAsE;gBACtE,8DAA8D;gBAC9D,IAAI,CAAC,MAAM,CACT,6BAA6B,OAAO,sBAAsB;oBACxD,qDAAqD,CACxD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GACV,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC;gBACnC,eAAe,MAAM,CAAC,cAAc,oBAAoB,MAAM,CAAC,iBAAiB,IAAI,CAAC,KAAK;gBAC5F,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,aAAa,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,yEAAyE;YACzE,yEAAyE;YACzE,6EAA6E;YAC7E,0EAA0E;YAC1E,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;gBACrB,MAAM,CAAC,EAAE;gBACX,CAAC,CAAC,MAAM,MAAM;qBACT,YAAY,EAAE;qBACd,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC;qBACvC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAvIM,uBAAO,GAAG,0EAA0E,CAAC;AACrF,2BAAW,GAChB,sFAAsF;IACtF,8FAA8F;IAC9F,6FAA6F;IAC7F,+FAA+F;IAC/F,4FAA4F;IAC5F,6CAA6C,CAAC;AACzC,wBAAQ,GAAG,CAAC,qCAAqC,EAAE,+CAA+C,CAAC,CAAC;AAEpG,oBAAI,GAAG;IACZ,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC;QAClB,WAAW,EACT,qHAAqH;QACvH,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,qBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EACT,kHAAkH;KACrH,CAAC;IACF,UAAU,EAAE,YAAK,CAAC,MAAM,CAAC;QACvB,WAAW,EACT,uFAAuF;YACvF,gGAAgG;YAChG,mEAAmE;KACtE,CAAC;CACH,CAAC;kBA/BiB,eAAe"}
|
|
@@ -9,7 +9,11 @@ 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>;
|
|
12
15
|
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>;
|
|
13
17
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
18
|
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
19
|
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
@@ -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;AAyBjD,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;;;;;;;;;;;;;;;;MAmDV;IAEF,OAAO,CAAC,QAAQ,CAAyD;IAEnE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmS1B;;;;OAIG;YACW,oBAAoB;IAsElC;;;;;OAKG;YACW,wBAAwB;IAWtC;;;;;;;;;;OAUG;YACW,SAAS;IAUvB;;;OAGG;YACW,qBAAqB;IAyGnC,sDAAsD;YACxC,UAAU;IAOxB;;;;;;;;OAQG;YACW,SAAS;IAoBvB;;;;OAIG;YACW,WAAW;IAuCzB,iFAAiF;IACjF,OAAO,CAAC,UAAU;CA+CnB"}
|
|
@@ -13,6 +13,7 @@ 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");
|
|
16
17
|
class XcodeRbe extends base_command_1.BaseCommand {
|
|
17
18
|
constructor() {
|
|
18
19
|
super(...arguments);
|
|
@@ -28,10 +29,34 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
28
29
|
if (!flags.id) {
|
|
29
30
|
this.error('--serve requires --id (it is set automatically by the background launcher).');
|
|
30
31
|
}
|
|
32
|
+
// This detached process holds the only RBE tunnel. The auto-install watcher
|
|
33
|
+
// runs async work (fs.watch callbacks, BEP parsing, HTTP) whose throws/
|
|
34
|
+
// rejections would otherwise reach Node's default handler and terminate the
|
|
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
|
|
37
|
+
// terminal-disconnect path is handled in awaitTunnel.
|
|
38
|
+
installDaemonCrashGuards((msg) => console.error(`[lim] ${msg}`));
|
|
31
39
|
await this.withAuth(async () => {
|
|
32
|
-
const
|
|
33
|
-
const client = await this.resolveXcodeClient(
|
|
34
|
-
|
|
40
|
+
const xcodeTarget = await this.resolveXcodeTarget(flags.id);
|
|
41
|
+
const client = await this.resolveXcodeClient(xcodeTarget);
|
|
42
|
+
const workspaceRoot = flags['workspace-root'];
|
|
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);
|
|
35
60
|
});
|
|
36
61
|
return;
|
|
37
62
|
}
|
|
@@ -92,9 +117,13 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
92
117
|
client = await this.resolveXcodeClient(target);
|
|
93
118
|
// resolveXcodeClient validates an iOS-backed target via iosInstances.get,
|
|
94
119
|
// but a cached standalone Xcode target is trusted without a round-trip.
|
|
95
|
-
// Validate it so a
|
|
96
|
-
// clears the cache and recreates) rather than a
|
|
97
|
-
|
|
120
|
+
// Validate it so a stale "last instance" pointer or a deleted instance throws
|
|
121
|
+
// NotFoundError here (→ withAuth clears the cache and recreates) rather than a
|
|
122
|
+
// misleading /rbe 404. Skip an instance we created this run: create({wait:true})
|
|
123
|
+
// already proved it exists, and get() reads the central read-model that the region
|
|
124
|
+
// populates asynchronously, so validating it here would race that lag and tear down
|
|
125
|
+
// a live session for nothing.
|
|
126
|
+
if (typeof target !== 'string' && target.type === 'xcode' && !this.wasCreatedThisRun(instanceId)) {
|
|
98
127
|
await this.client.xcodeInstances.get(instanceId);
|
|
99
128
|
}
|
|
100
129
|
// Start the stack (retrying transient gateway blips right after instance
|
|
@@ -136,9 +165,12 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
136
165
|
this.error(err instanceof Error ? err.message : String(err));
|
|
137
166
|
}
|
|
138
167
|
}
|
|
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']);
|
|
139
171
|
let generated;
|
|
140
172
|
try {
|
|
141
|
-
generated = (0, rbe_workspace_1.writeRbeWorkspaceFiles)(workspaceRoot, xcodeVersion, flags.port);
|
|
173
|
+
generated = (0, rbe_workspace_1.writeRbeWorkspaceFiles)(workspaceRoot, xcodeVersion, flags.port, bepPath);
|
|
142
174
|
}
|
|
143
175
|
catch (err) {
|
|
144
176
|
await client.stopRbe().catch(() => { });
|
|
@@ -152,8 +184,17 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
152
184
|
// builds if put in .bazelrc), hence it precedes `build` in the command.
|
|
153
185
|
// Infer a real app target so the printed command is runnable as-is; fall
|
|
154
186
|
// back to a placeholder when there's no single obvious target.
|
|
155
|
-
const
|
|
187
|
+
const inferredTarget = (0, rbe_workspace_1.inferBuildTarget)(workspaceRoot);
|
|
188
|
+
const target = inferredTarget ?? '//your:target';
|
|
156
189
|
const buildCmd = `bazelisk --digest_function=sha256 build --config=limrun ${target}`;
|
|
190
|
+
// Decide auto-install: on by default, but only when we have a concrete
|
|
191
|
+
// target to watch. An explicit --target wins over inference; an ambiguous
|
|
192
|
+
// workspace with no --target cannot auto-install.
|
|
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
|
+
}
|
|
157
198
|
// --ios: create + attach a simulator so `lim xcode rbe install` installs on
|
|
158
199
|
// it and the stream URL is printed. Recorded in the pidfile so --stop tears
|
|
159
200
|
// it down too.
|
|
@@ -181,6 +222,9 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
181
222
|
xcodeVersion,
|
|
182
223
|
generated,
|
|
183
224
|
buildCmd,
|
|
225
|
+
autoInstall,
|
|
226
|
+
target: autoInstall ? watchTarget : undefined,
|
|
227
|
+
bepPath,
|
|
184
228
|
});
|
|
185
229
|
}
|
|
186
230
|
catch (err) {
|
|
@@ -216,8 +260,19 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
216
260
|
instanceId,
|
|
217
261
|
background: false,
|
|
218
262
|
});
|
|
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;
|
|
219
272
|
try {
|
|
220
|
-
|
|
273
|
+
// Close the watcher before the tunnel/stack teardown (inside awaitTunnel),
|
|
274
|
+
// so an in-flight install never races a stopped stack.
|
|
275
|
+
await this.awaitTunnel(tunnel, client, watcher ? () => watcher.close() : undefined);
|
|
221
276
|
}
|
|
222
277
|
finally {
|
|
223
278
|
await this.deleteSim(simInstanceId);
|
|
@@ -347,6 +402,11 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
347
402
|
id: opts.instanceId,
|
|
348
403
|
port: opts.port,
|
|
349
404
|
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
|
+
: {}),
|
|
350
410
|
}), { detached: true, stdio: ['ignore', logFd, logFd] });
|
|
351
411
|
fs_1.default.closeSync(logFd);
|
|
352
412
|
child.unref();
|
|
@@ -395,6 +455,11 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
395
455
|
instanceId: opts.instanceId,
|
|
396
456
|
port: opts.port,
|
|
397
457
|
...(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 } : {}),
|
|
398
463
|
});
|
|
399
464
|
this.printReady({
|
|
400
465
|
port: opts.port,
|
|
@@ -424,23 +489,27 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
424
489
|
* the child if it exits within a short liveness window, so a slow tunnel-open
|
|
425
490
|
* failure would otherwise leave the remote stack running with no owner.
|
|
426
491
|
*/
|
|
427
|
-
async runTunnel(client, port) {
|
|
492
|
+
async runTunnel(client, port, beforeStop) {
|
|
428
493
|
let tunnel;
|
|
429
494
|
try {
|
|
430
495
|
tunnel = await this.openTunnel(client, port);
|
|
431
496
|
}
|
|
432
497
|
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(() => { });
|
|
433
502
|
await client.stopRbe().catch(() => { });
|
|
434
503
|
this.error(`Failed to open the remote-execution tunnel: ${err instanceof Error ? err.message : String(err)}`);
|
|
435
504
|
}
|
|
436
|
-
await this.awaitTunnel(tunnel, client);
|
|
505
|
+
await this.awaitTunnel(tunnel, client, beforeStop);
|
|
437
506
|
}
|
|
438
507
|
/**
|
|
439
508
|
* Block on an already-open tunnel until a stop signal, then close it and
|
|
440
509
|
* best-effort stop the remote stack. Rejects if the tunnel reports a terminal
|
|
441
510
|
* disconnect (after its own reconnect attempts are exhausted).
|
|
442
511
|
*/
|
|
443
|
-
async awaitTunnel(tunnel, client) {
|
|
512
|
+
async awaitTunnel(tunnel, client, beforeStop) {
|
|
444
513
|
try {
|
|
445
514
|
await new Promise((resolve, reject) => {
|
|
446
515
|
const keepAlive = setInterval(() => { }, 1 << 30);
|
|
@@ -468,6 +537,10 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
468
537
|
});
|
|
469
538
|
}
|
|
470
539
|
finally {
|
|
540
|
+
// Drain the auto-install watcher first, so a registration in flight can't
|
|
541
|
+
// land against an already-closed tunnel / stopped stack.
|
|
542
|
+
if (beforeStop)
|
|
543
|
+
await beforeStop().catch(() => { });
|
|
471
544
|
tunnel.close();
|
|
472
545
|
await client.stopRbe().catch(() => { });
|
|
473
546
|
}
|
|
@@ -540,14 +613,31 @@ XcodeRbe.flags = {
|
|
|
540
613
|
default: false,
|
|
541
614
|
}),
|
|
542
615
|
ios: core_1.Flags.boolean({
|
|
543
|
-
description: 'Also create an iOS simulator and attach it, so
|
|
616
|
+
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.',
|
|
544
617
|
default: false,
|
|
545
618
|
}),
|
|
619
|
+
'auto-install': core_1.Flags.boolean({
|
|
620
|
+
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).',
|
|
621
|
+
default: true,
|
|
622
|
+
allowNo: true,
|
|
623
|
+
}),
|
|
624
|
+
target: core_1.Flags.string({
|
|
625
|
+
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.',
|
|
626
|
+
}),
|
|
627
|
+
'bep-file': core_1.Flags.string({
|
|
628
|
+
description: "Path for Bazel's build event log (--build_event_json_file), which the auto-install watcher reads " +
|
|
629
|
+
'after each build. Defaults to .limrun/bep.json; set it only if your build already writes the log ' +
|
|
630
|
+
'elsewhere. `lim xcode rbe install` reuses this path automatically.',
|
|
631
|
+
}),
|
|
546
632
|
serve: core_1.Flags.boolean({
|
|
547
633
|
hidden: true,
|
|
548
634
|
default: false,
|
|
549
635
|
description: 'Internal: run only the tunnel serve loop (used by the detached background process).',
|
|
550
636
|
}),
|
|
637
|
+
'workspace-root': core_1.Flags.string({
|
|
638
|
+
hidden: true,
|
|
639
|
+
description: 'Internal: workspace root passed to the detached serve process for the auto-install watcher.',
|
|
640
|
+
}),
|
|
551
641
|
};
|
|
552
642
|
exports.default = XcodeRbe;
|
|
553
643
|
/** Sends `signal` to `pid`, ignoring "already gone". Returns false if the process was absent. */
|
|
@@ -560,6 +650,25 @@ function signalIfAlive(pid, signal) {
|
|
|
560
650
|
return false;
|
|
561
651
|
}
|
|
562
652
|
}
|
|
653
|
+
/**
|
|
654
|
+
* Backstops the detached serve daemon. The auto-install watcher already catches
|
|
655
|
+
* its own read/parse/HTTP errors internally, so a floating *rejection* here is
|
|
656
|
+
* almost always benign (e.g. the tunnel's reconnect machinery); log and continue
|
|
657
|
+
* rather than let Node's default crash drop the tunnel mid-build. A thrown
|
|
658
|
+
* *exception* that reaches the top level is a genuine fault we can't reason
|
|
659
|
+
* about: log and exit non-zero so the port frees and the next `lim xcode rbe`
|
|
660
|
+
* reaps the stale pidfile — far better than lingering as a zombie that holds the
|
|
661
|
+
* port with a dead tunnel and blocks restart.
|
|
662
|
+
*/
|
|
663
|
+
function installDaemonCrashGuards(log) {
|
|
664
|
+
process.on('unhandledRejection', (reason) => {
|
|
665
|
+
log(`auto-install: ignoring unhandled rejection to keep the tunnel alive: ${String(reason)}`);
|
|
666
|
+
});
|
|
667
|
+
process.on('uncaughtException', (err) => {
|
|
668
|
+
log(`daemon: fatal uncaught exception, exiting so the tunnel can be restarted: ${err?.message ?? err}`);
|
|
669
|
+
process.exit(1);
|
|
670
|
+
});
|
|
671
|
+
}
|
|
563
672
|
/** Reads the last `lines` lines of a log file for error surfacing; best-effort. */
|
|
564
673
|
function readLogTail(logPath, lines = 20) {
|
|
565
674
|
try {
|
|
@@ -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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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,267 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rbe-bep-watcher.js","sourceRoot":"","sources":["../../src/lib/rbe-bep-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,12 +30,21 @@ 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.
|
|
33
39
|
*/
|
|
34
40
|
export declare function buildServeChildArgs(opts: {
|
|
35
41
|
scriptPath: string;
|
|
36
42
|
id: string;
|
|
37
43
|
port: number;
|
|
38
44
|
apiKey?: string;
|
|
45
|
+
workspaceRoot?: string;
|
|
46
|
+
target?: string;
|
|
47
|
+
bepFile?: string;
|
|
39
48
|
}): string[];
|
|
40
49
|
/**
|
|
41
50
|
* A running background tunnel's coordinates, persisted to `.limrun/rbe.pid` so
|
|
@@ -49,6 +58,10 @@ export type RbePidInfo = {
|
|
|
49
58
|
port: number;
|
|
50
59
|
/** iOS simulator created by `--ios`, torn down on --stop. Absent otherwise. */
|
|
51
60
|
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;
|
|
52
65
|
};
|
|
53
66
|
export declare function rbePidFilePath(workspaceRoot: string): string;
|
|
54
67
|
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;;;;;;;;;;GAUG;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;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,EAAE,CA6BX;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;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,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,6 +85,12 @@ 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.
|
|
88
94
|
*/
|
|
89
95
|
function buildServeChildArgs(opts) {
|
|
90
96
|
// --no-create: the child must never own instance creation. The parent already
|
|
@@ -102,6 +108,15 @@ function buildServeChildArgs(opts) {
|
|
|
102
108
|
'--port',
|
|
103
109
|
String(opts.port),
|
|
104
110
|
];
|
|
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
|
+
}
|
|
105
120
|
if (opts.apiKey) {
|
|
106
121
|
args.push('--api-key', opts.apiKey);
|
|
107
122
|
}
|
|
@@ -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,6 +8,19 @@
|
|
|
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;
|
|
11
24
|
/**
|
|
12
25
|
* Finds the Bazel workspace root by walking up from `startDir` to the first
|
|
13
26
|
* ancestor containing a MODULE.bazel / WORKSPACE / WORKSPACE.bazel, mirroring
|
|
@@ -137,5 +150,5 @@ export type RbeWorkspaceFiles = {
|
|
|
137
150
|
* try-import. The .gitignore containing "*" makes the directory self-ignoring
|
|
138
151
|
* so nothing else in the user's repo needs to change.
|
|
139
152
|
*/
|
|
140
|
-
export declare function writeRbeWorkspaceFiles(workspaceDir: string, xcodeVersionKey: string, port: number, isMacClient?: boolean, bazelMajor?: number | null): RbeWorkspaceFiles;
|
|
153
|
+
export declare function writeRbeWorkspaceFiles(workspaceDir: string, xcodeVersionKey: string, port: number, bepFile?: string, isMacClient?: boolean, bazelMajor?: number | null): RbeWorkspaceFiles;
|
|
141
154
|
//# 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;AAGxE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF;AAID;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAmBR;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,OAAO,GAAE,MAAqC,EAC9C,WAAW,GAAE,OAAuC,EACpD,UAAU,GAAE,MAAM,GAAG,IAA4C,GAChE,iBAAiB,CAmBnB"}
|
|
@@ -4,6 +4,8 @@ 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;
|
|
7
9
|
exports.findBazelWorkspaceRoot = findBazelWorkspaceRoot;
|
|
8
10
|
exports.inferBuildTarget = inferBuildTarget;
|
|
9
11
|
exports.detectBazelMajorVersion = detectBazelMajorVersion;
|
|
@@ -25,6 +27,23 @@ const path_1 = __importDefault(require("path"));
|
|
|
25
27
|
exports.LIMRUN_DIR = '.limrun';
|
|
26
28
|
exports.TRY_IMPORT_LINE = 'try-import %workspace%/.limrun/bazelrc';
|
|
27
29
|
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
|
+
}
|
|
28
47
|
const WORKSPACE_MARKERS = ['MODULE.bazel', 'WORKSPACE', 'WORKSPACE.bazel'];
|
|
29
48
|
/**
|
|
30
49
|
* Finds the Bazel workspace root by walking up from `startDir` to the first
|
|
@@ -344,7 +363,7 @@ function ensureTryImport(workspaceDir) {
|
|
|
344
363
|
* try-import. The .gitignore containing "*" makes the directory self-ignoring
|
|
345
364
|
* so nothing else in the user's repo needs to change.
|
|
346
365
|
*/
|
|
347
|
-
function writeRbeWorkspaceFiles(workspaceDir, xcodeVersionKey, port, isMacClient = process.platform === 'darwin', bazelMajor = detectBazelMajorVersion(workspaceDir)) {
|
|
366
|
+
function writeRbeWorkspaceFiles(workspaceDir, xcodeVersionKey, port, bepFile = defaultBepPath(workspaceDir), isMacClient = process.platform === 'darwin', bazelMajor = detectBazelMajorVersion(workspaceDir)) {
|
|
348
367
|
const dir = path_1.default.join(workspaceDir, exports.LIMRUN_DIR);
|
|
349
368
|
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
350
369
|
const buildFile = path_1.default.join(dir, 'BUILD');
|
|
@@ -353,10 +372,11 @@ function writeRbeWorkspaceFiles(workspaceDir, xcodeVersionKey, port, isMacClient
|
|
|
353
372
|
// longer native globals. On a known Bazel 8 workspace they ARE native (and
|
|
354
373
|
// loading would fail), so omit the loads.
|
|
355
374
|
const emitLoads = isBazel9OrLater(bazelMajor);
|
|
356
|
-
//
|
|
357
|
-
// install
|
|
358
|
-
//
|
|
359
|
-
|
|
375
|
+
// The BEP path is absolute so it resolves regardless of bazel's cwd; the
|
|
376
|
+
// watcher and `lim xcode rbe install` read the same path. Defaults under the
|
|
377
|
+
// self-gitignored .limrun/; a custom --bep-file may point elsewhere, so make
|
|
378
|
+
// sure its parent exists before bazel tries to write it.
|
|
379
|
+
fs_1.default.mkdirSync(path_1.default.dirname(bepFile), { recursive: true });
|
|
360
380
|
fs_1.default.writeFileSync(buildFile, renderXcodeConfigBuild(xcodeVersionKey, emitLoads));
|
|
361
381
|
fs_1.default.writeFileSync(bazelrcFragment, renderLimrunBazelrc(port, xcodeVersionKey, isMacClient, bepFile));
|
|
362
382
|
fs_1.default.writeFileSync(path_1.default.join(dir, '.gitignore'), '*\n');
|
|
@@ -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.14.
|
|
3
|
+
"version": "0.14.6",
|
|
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"
|
|
@@ -17,14 +17,15 @@
|
|
|
17
17
|
},
|
|
18
18
|
"license": "Apache-2.0",
|
|
19
19
|
"scripts": {
|
|
20
|
+
"prebuild": "yarn --cwd ../.. build",
|
|
20
21
|
"build": "rm -rf dist && tsc",
|
|
21
22
|
"dev": "node bin/dev.js",
|
|
22
|
-
"prepublishOnly": "npm run build",
|
|
23
|
+
"prepublishOnly": "tsc --noEmit -p tsconfig.publish.json && npm run build",
|
|
23
24
|
"lint": "eslint src/",
|
|
24
25
|
"test": "jest"
|
|
25
26
|
},
|
|
26
27
|
"dependencies": {
|
|
27
|
-
"@limrun/api": "^0.31.
|
|
28
|
+
"@limrun/api": "^0.31.4",
|
|
28
29
|
"@oclif/core": "^4",
|
|
29
30
|
"cli-progress": "^3.12.0",
|
|
30
31
|
"cli-table3": "^0.6.5",
|