lim 0.16.2 → 0.16.4
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/ios/create.js +2 -2
- package/dist/commands/ios/create.js.map +1 -1
- package/dist/commands/ios/keychain/generate-key.d.ts.map +1 -1
- package/dist/commands/ios/keychain/generate-key.js +1 -1
- package/dist/commands/ios/keychain/generate-key.js.map +1 -1
- package/dist/commands/ios/keychain/{import.d.ts → restore.d.ts} +2 -2
- package/dist/commands/ios/keychain/restore.d.ts.map +1 -0
- package/dist/commands/ios/keychain/{import.js → restore.js} +20 -20
- package/dist/commands/ios/keychain/restore.js.map +1 -0
- package/dist/commands/ios/keychain/{export.d.ts → save.d.ts} +2 -2
- package/dist/commands/ios/keychain/save.d.ts.map +1 -0
- package/dist/commands/ios/keychain/{export.js → save.js} +21 -21
- package/dist/commands/ios/keychain/save.js.map +1 -0
- package/dist/commands/xcode/{rbe.d.ts → rbe/index.d.ts} +7 -3
- package/dist/commands/xcode/rbe/index.d.ts.map +1 -0
- package/dist/commands/xcode/{rbe.js → rbe/index.js} +79 -23
- package/dist/commands/xcode/rbe/index.js.map +1 -0
- package/dist/commands/xcode/rbe/upload.d.ts +19 -0
- package/dist/commands/xcode/rbe/upload.d.ts.map +1 -0
- package/dist/commands/xcode/rbe/upload.js +77 -0
- package/dist/commands/xcode/rbe/upload.js.map +1 -0
- package/dist/lib/rbe-auto-upload.d.ts +24 -0
- package/dist/lib/rbe-auto-upload.d.ts.map +1 -0
- package/dist/lib/rbe-auto-upload.js +131 -0
- package/dist/lib/rbe-auto-upload.js.map +1 -0
- package/dist/lib/rbe-session.d.ts +8 -26
- package/dist/lib/rbe-session.d.ts.map +1 -1
- package/dist/lib/rbe-session.js +9 -65
- package/dist/lib/rbe-session.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/ios/keychain/export.d.ts.map +0 -1
- package/dist/commands/ios/keychain/export.js.map +0 -1
- package/dist/commands/ios/keychain/import.d.ts.map +0 -1
- package/dist/commands/ios/keychain/import.js.map +0 -1
- package/dist/commands/xcode/rbe.d.ts.map +0 -1
- package/dist/commands/xcode/rbe.js.map +0 -1
- package/dist/lib/rbe-workspace.d.ts +0 -163
- package/dist/lib/rbe-workspace.d.ts.map +0 -1
- package/dist/lib/rbe-workspace.js +0 -396
- package/dist/lib/rbe-workspace.js.map +0 -1
|
@@ -246,11 +246,11 @@ IosCreate.flags = {
|
|
|
246
246
|
multiple: true,
|
|
247
247
|
}),
|
|
248
248
|
keychain: core_1.Flags.string({
|
|
249
|
-
description: 'Existing encrypted Keychain asset name to
|
|
249
|
+
description: 'Existing encrypted Keychain asset name to restore after creation.',
|
|
250
250
|
multiple: true,
|
|
251
251
|
}),
|
|
252
252
|
'keychain-url': core_1.Flags.string({
|
|
253
|
-
description: 'Presigned encrypted Keychain asset URL to
|
|
253
|
+
description: 'Presigned encrypted Keychain asset URL to restore after creation.',
|
|
254
254
|
multiple: true,
|
|
255
255
|
}),
|
|
256
256
|
'encryption-key': core_1.Flags.string({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/ios/create.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,sCAA0C;AAC1C,qDAAiD;AACjD,qDAAmD;AACnD,6CAA2D;AAC3D,2DAAgE;AAChE,iEAA8F;AAC9F,iDAAsD;AACtD,+EAAiF;AAIjF,MAAqB,SAAU,SAAQ,0BAAW;IAuFhD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAClG,IAAI,CAAC,wBAAwB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC5F,IAAI,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QACvG,CAAC;QAED,IAAI,qBAAyC,CAAC;QAC9C,IAAI,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,qBAAqB,GAAG,MAAM,IAAA,sDAA4B,EAAC;oBACzD,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC;oBACtC,kBAAkB,EAAE,KAAK,CAAC,sBAAsB,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CACR,4GAA4G,CAC7G,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE5F,MAAM,UAAU,GAAa,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACxC,MAAM,IAAI,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;oBAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;wBACjD,IAAI,EAAE,QAAQ;wBACd,IAAI;wBACJ,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;qBACxB,CAAC,CAAC;oBACH,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,IAAI;gBACV,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,SAAS;gBACpD,IAAI,EAAE,EAAE;aACT,CAAC;YAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAK,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACrD,IAAI,EAAE,KAAc;oBACpB,MAAM,EAAE,WAAoB;oBAC5B,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC,CAAC;YACN,CAAC;YACD,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,qBAAsB,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAK,CAAC,aAAa,GAAG;oBAC3B,GAAG,CAAC,MAAM,CAAC,IAAK,CAAC,aAAa,IAAI,EAAE,CAAC;oBACrC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACvC,IAAI,EAAE,UAAmB;wBACzB,MAAM,EAAE,WAAoB;wBAC5B,SAAS,EAAE,IAAI;wBACf,aAAa;qBACd,CAAC,CAAC;oBACH,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAC7C,IAAI,EAAE,UAAmB;wBACzB,MAAM,EAAE,KAAc;wBACtB,GAAG;wBACH,aAAa;qBACd,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACrD,IAAI,KAAK,CAAC,KAAK;gBAAE,MAAM,CAAC,IAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAoC,CAAC;YACjF,IAAI,KAAK,CAAC,cAAc,CAAC;gBAAE,MAAM,CAAC,IAAK,CAAC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5E,IAAI,KAAK,CAAC,oBAAoB,CAAC;gBAAE,MAAM,CAAC,IAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC9F,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAK,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACtD,CAAC;YAED,MAAM,MAAM,GAAG,IAAA,wBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,MAAM,EAAE,CAAC;gBACpC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,IAAI,KAAK,CAAC,cAAc,CAAC;oBAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC/E,IAAI,MAAM;oBAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YAC9C,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;YAC5D,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,qCAAqB,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAA,gCAAuB,EAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC;YACF,IAAI,YAA+C,CAAC;YACpD,IAAI,gBAAoC,CAAC;YACzC,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC/B,YAAY,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC5D,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;gBAC9C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,CAAC;oBAC9E,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;wBACb,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,MAAM,cAAc,GAClB,KAAK,CAAC,KAAK,CAAC,CAAC;gBACX,oDAAoD,IAAA,2BAAgB,EAAC,gBAAgB,CAAC,GAAG;gBAC3F,CAAC,CAAC,iCAAiC,IAAA,2BAAgB,EAAC,gBAAgB,CAAC,GAAG,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;YAC1C,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,wBAAwB,eAAe,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/C,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC5B,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,UAAU,eAAe,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;gBACjC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBACnC,IAAI,CAAC,IAAI,CAAC,+BAA+B,IAAA,2BAAgB,EAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAClF,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAA,8CAA2B,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;oBACjC,IAAI,CAAC,UAAU,CAAC;wBACd,GAAG,QAAQ;wBACX,MAAM,EAAE,IAAA,sCAAmB,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC;qBACjF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAChE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjD,MAAM,QAAQ,GAAG,GAAG,EAAE;wBACpB,aAAa,CAAC,SAAS,CAAC,CAAC;wBACzB,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;oBACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACH,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA9QM,iBAAO,GAAG,2BAA2B,CAAC;AACtC,qBAAW,GAChB,gLAAgL,CAAC;AAE5K,kBAAQ,GAAG;IAChB,8BAA8B;IAC9B,gDAAgD;IAChD,0EAA0E;IAC1E,qGAAqG;IACrG,uGAAuG;IACvG,oDAAoD;IACpD,2DAA2D;CAC5D,CAAC;AAEK,cAAI,GAAG;IACZ,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,gFAAgF;QAC7F,QAAQ,EAAE,KAAK;KAChB,CAAC;CACH,CAAC;AAEK,eAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,EAAE,EAAE,YAAK,CAAC,OAAO,CAAC;QAChB,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,KAAK;KACf,CAAC;IACF,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;QAC3B,WAAW,EAAE,+DAA+D;KAC7E,CAAC;IACF,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAAC;IACrG,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;IACrG,oBAAoB,EAAE,YAAK,CAAC,MAAM,CAAC;QACjC,WAAW,EAAE,6EAA6E;KAC3F,CAAC;IACF,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;KACrC,CAAC;IACF,iBAAiB,EAAE,YAAK,CAAC,OAAO,CAAC;QAC/B,WAAW,EAAE,mEAAmE;QAChF,OAAO,EAAE,KAAK;KACf,CAAC;IACF,eAAe,EAAE,YAAK,CAAC,MAAM,CAAC;QAC5B,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/ios/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-key.d.ts","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/generate-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,WAAW;IAC7D,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"generate-key.d.ts","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/generate-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,WAAW;IAC7D,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,SACsH;IACxI,MAAM,CAAC,QAAQ,WAAkE;IAEjF,MAAM,CAAC,KAAK;;;;;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3B"}
|
|
@@ -10,7 +10,7 @@ class IosKeychainGenerateKey extends base_command_1.BaseCommand {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
IosKeychainGenerateKey.summary = 'Generate an iOS keychain encryption key';
|
|
13
|
-
IosKeychainGenerateKey.description = 'Print a new 32-byte base64 key for encrypted iOS keychain
|
|
13
|
+
IosKeychainGenerateKey.description = 'Print a new 32-byte base64 key for encrypted iOS keychain save and restore. Store it securely and pass it to save/restore on stdin.';
|
|
14
14
|
IosKeychainGenerateKey.examples = ['<%= config.bin %> ios keychain generate-key > keychain.key'];
|
|
15
15
|
IosKeychainGenerateKey.flags = {
|
|
16
16
|
...base_command_1.BaseCommand.baseFlags,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-key.js","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/generate-key.ts"],"names":[],"mappings":";;AAAA,wDAAoD;AACpD,kFAAqF;AAErF,MAAqB,sBAAuB,SAAQ,0BAAW;IAU7D,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAA,uDAA6B,GAAE,CAAC,CAAC;IAC/C,CAAC;;AAbM,8BAAO,GAAG,yCAAyC,CAAC;AACpD,kCAAW,GAChB,
|
|
1
|
+
{"version":3,"file":"generate-key.js","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/generate-key.ts"],"names":[],"mappings":";;AAAA,wDAAoD;AACpD,kFAAqF;AAErF,MAAqB,sBAAuB,SAAQ,0BAAW;IAU7D,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAA,uDAA6B,GAAE,CAAC,CAAC;IAC/C,CAAC;;AAbM,8BAAO,GAAG,yCAAyC,CAAC;AACpD,kCAAW,GAChB,qIAAqI,CAAC;AACjI,+BAAQ,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAE1E,4BAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAC;kBARiB,sBAAsB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseCommand } from '../../../base-command';
|
|
2
|
-
export default class
|
|
2
|
+
export default class IosKeychainRestore extends BaseCommand {
|
|
3
3
|
static summary: string;
|
|
4
4
|
static description: string;
|
|
5
5
|
static examples: string[];
|
|
@@ -21,4 +21,4 @@ export default class IosKeychainImport extends BaseCommand {
|
|
|
21
21
|
run(): Promise<void>;
|
|
22
22
|
private resolveKeychainAssetDownloadUrl;
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=restore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/restore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAcpD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,WAAW;IACzD,MAAM,CAAC,OAAO,SAAmD;IACjE,MAAM,CAAC,WAAW,SACwI;IAC1J,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAkBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAkCZ,+BAA+B;CAsC9C"}
|
|
@@ -4,9 +4,9 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const base_command_1 = require("../../../base-command");
|
|
5
5
|
const instance_client_factory_1 = require("../../../lib/instance-client-factory");
|
|
6
6
|
const keychain_encryption_key_1 = require("../../../lib/keychain-encryption-key");
|
|
7
|
-
class
|
|
7
|
+
class IosKeychainRestore extends base_command_1.BaseCommand {
|
|
8
8
|
async run() {
|
|
9
|
-
const { args, flags } = await this.parse(
|
|
9
|
+
const { args, flags } = await this.parse(IosKeychainRestore);
|
|
10
10
|
this.setParsedFlags(flags);
|
|
11
11
|
let encryptionKey;
|
|
12
12
|
try {
|
|
@@ -24,12 +24,12 @@ class IosKeychainImport extends base_command_1.BaseCommand {
|
|
|
24
24
|
const url = flags.url ?? (await this.resolveKeychainAssetDownloadUrl(assetName, flags['asset-id']));
|
|
25
25
|
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
26
26
|
try {
|
|
27
|
-
const result = await client.
|
|
27
|
+
const result = await client.restoreKeychain({ url, encryptionKey });
|
|
28
28
|
if (flags.json) {
|
|
29
29
|
this.outputJson(result);
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
|
-
this.output('Keychain
|
|
32
|
+
this.output('Keychain restored');
|
|
33
33
|
this.output(`Duration: ${result.durationMs}ms`);
|
|
34
34
|
}
|
|
35
35
|
finally {
|
|
@@ -75,31 +75,31 @@ class IosKeychainImport extends base_command_1.BaseCommand {
|
|
|
75
75
|
return asset.signedDownloadUrl;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
'<%= config.bin %> ios keychain
|
|
82
|
-
'<%= config.bin %> ios keychain
|
|
83
|
-
'<%= config.bin %> ios keychain
|
|
84
|
-
'<%= config.bin %> ios keychain
|
|
85
|
-
'<%= config.bin %> ios keychain
|
|
78
|
+
IosKeychainRestore.summary = 'Restore iOS keychain state from asset storage';
|
|
79
|
+
IosKeychainRestore.description = 'Resolve a Keychain asset by name, then ask the target iOS simulator to download and apply the keychain tar.gz. Use --asset-id to restore by asset ID.';
|
|
80
|
+
IosKeychainRestore.examples = [
|
|
81
|
+
'<%= config.bin %> ios keychain restore keychain/login.tar.gz',
|
|
82
|
+
'<%= config.bin %> ios keychain restore keychain/login.tar.gz --id <instance-ID>',
|
|
83
|
+
'<%= config.bin %> ios keychain restore --asset-id <asset-ID>',
|
|
84
|
+
'<%= config.bin %> ios keychain restore --url https://example.t3.storage.dev/... --json',
|
|
85
|
+
'<%= config.bin %> ios keychain restore keychain/login.tar.gz --encryption-key-stdin < keychain.key',
|
|
86
86
|
];
|
|
87
|
-
|
|
87
|
+
IosKeychainRestore.args = {
|
|
88
88
|
asset_name: core_1.Args.string({
|
|
89
|
-
description: `Keychain asset name to
|
|
89
|
+
description: `Keychain asset name to restore. Defaults to ${keychain_encryption_key_1.DEFAULT_KEYCHAIN_ASSET_NAME}.`,
|
|
90
90
|
required: false,
|
|
91
91
|
}),
|
|
92
92
|
};
|
|
93
|
-
|
|
93
|
+
IosKeychainRestore.flags = {
|
|
94
94
|
...base_command_1.BaseCommand.baseFlags,
|
|
95
95
|
id: core_1.Flags.string({
|
|
96
|
-
description: 'iOS instance ID to
|
|
96
|
+
description: 'iOS instance ID to restore into. Defaults to the last created iOS instance.',
|
|
97
97
|
}),
|
|
98
98
|
url: core_1.Flags.string({
|
|
99
|
-
description: 'Presigned download URL to
|
|
99
|
+
description: 'Presigned download URL to restore directly instead of resolving an asset.',
|
|
100
100
|
}),
|
|
101
101
|
'asset-id': core_1.Flags.string({
|
|
102
|
-
description: 'Keychain asset ID to
|
|
102
|
+
description: 'Keychain asset ID to restore instead of resolving the positional asset name.',
|
|
103
103
|
}),
|
|
104
104
|
'encryption-key': core_1.Flags.string({
|
|
105
105
|
description: 'Base64/base64url 32-byte decryption key for the keychain archive.',
|
|
@@ -109,5 +109,5 @@ IosKeychainImport.flags = {
|
|
|
109
109
|
default: false,
|
|
110
110
|
}),
|
|
111
111
|
};
|
|
112
|
-
exports.default =
|
|
113
|
-
//# sourceMappingURL=
|
|
112
|
+
exports.default = IosKeychainRestore;
|
|
113
|
+
//# sourceMappingURL=restore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/restore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseCommand } from '../../../base-command';
|
|
2
|
-
export default class
|
|
2
|
+
export default class IosKeychainSave extends BaseCommand {
|
|
3
3
|
static summary: string;
|
|
4
4
|
static description: string;
|
|
5
5
|
static examples: string[];
|
|
@@ -23,4 +23,4 @@ export default class IosKeychainExport extends BaseCommand {
|
|
|
23
23
|
private listExistingKeychainAssets;
|
|
24
24
|
private confirmOverwrite;
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=save.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/save.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAcpD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,MAAM,CAAC,OAAO,SAA8C;IAC5D,MAAM,CAAC,WAAW,SACuJ;IACzK,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAuBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAkEZ,0BAA0B;YAO1B,gBAAgB;CAuB/B"}
|
|
@@ -8,9 +8,9 @@ const prompts_1 = __importDefault(require("prompts"));
|
|
|
8
8
|
const base_command_1 = require("../../../base-command");
|
|
9
9
|
const instance_client_factory_1 = require("../../../lib/instance-client-factory");
|
|
10
10
|
const keychain_encryption_key_1 = require("../../../lib/keychain-encryption-key");
|
|
11
|
-
class
|
|
11
|
+
class IosKeychainSave extends base_command_1.BaseCommand {
|
|
12
12
|
async run() {
|
|
13
|
-
const { args, flags } = await this.parse(
|
|
13
|
+
const { args, flags } = await this.parse(IosKeychainSave);
|
|
14
14
|
this.setParsedFlags(flags);
|
|
15
15
|
const assetName = args.asset_name ?? flags['asset-name'] ?? keychain_encryption_key_1.DEFAULT_KEYCHAIN_ASSET_NAME;
|
|
16
16
|
let encryptionKey;
|
|
@@ -36,7 +36,7 @@ class IosKeychainExport extends base_command_1.BaseCommand {
|
|
|
36
36
|
if (existingAssets.length > 0) {
|
|
37
37
|
const shouldOverwrite = await this.confirmOverwrite(assetName, existingAssets, flags.yes);
|
|
38
38
|
if (!shouldOverwrite) {
|
|
39
|
-
this.info('
|
|
39
|
+
this.info('Save cancelled.');
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -48,7 +48,7 @@ class IosKeychainExport extends base_command_1.BaseCommand {
|
|
|
48
48
|
});
|
|
49
49
|
const { client, disconnect } = await (0, instance_client_factory_1.getIosInstanceClient)(this.client, resolvedInstance);
|
|
50
50
|
try {
|
|
51
|
-
await client.
|
|
51
|
+
await client.saveKeychain({ url: asset.signedUploadUrl, encryptionKey });
|
|
52
52
|
}
|
|
53
53
|
finally {
|
|
54
54
|
disconnect();
|
|
@@ -65,7 +65,7 @@ class IosKeychainExport extends base_command_1.BaseCommand {
|
|
|
65
65
|
if (generatedEncryptionKey) {
|
|
66
66
|
this.output(`Auto-generated the encryption key.`);
|
|
67
67
|
}
|
|
68
|
-
this.output(`You can
|
|
68
|
+
this.output(`You can restore with the following command: \n\n$ lim ios keychain restore ${asset.name} --encryption-key ${generatedEncryptionKey ? encryptionKey : '<key>'}`);
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
async listExistingKeychainAssets(assetName) {
|
|
@@ -92,35 +92,35 @@ class IosKeychainExport extends base_command_1.BaseCommand {
|
|
|
92
92
|
return Boolean(response.overwrite);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
'<%= config.bin %> ios keychain
|
|
99
|
-
'<%= config.bin %> ios keychain
|
|
100
|
-
'<%= config.bin %> ios keychain
|
|
101
|
-
'<%= config.bin %> ios keychain
|
|
95
|
+
IosKeychainSave.summary = 'Save iOS keychain state to asset storage';
|
|
96
|
+
IosKeychainSave.description = 'Create a Keychain asset or confirm overwriting an existing one, ask the target iOS simulator to upload its keychain tar.gz to asset storage, and print the asset ID.';
|
|
97
|
+
IosKeychainSave.examples = [
|
|
98
|
+
'<%= config.bin %> ios keychain save',
|
|
99
|
+
'<%= config.bin %> ios keychain save keychain/login.tar.gz',
|
|
100
|
+
'<%= config.bin %> ios keychain save keychain/login.tar.gz --ttl 24h --json',
|
|
101
|
+
'<%= config.bin %> ios keychain save keychain/login.tar.gz --yes',
|
|
102
102
|
'<%= config.bin %> ios keychain generate-key > keychain.key',
|
|
103
|
-
'<%= config.bin %> ios keychain
|
|
103
|
+
'<%= config.bin %> ios keychain save keychain/login.tar.gz --encryption-key-stdin < keychain.key',
|
|
104
104
|
];
|
|
105
|
-
|
|
105
|
+
IosKeychainSave.args = {
|
|
106
106
|
asset_name: core_1.Args.string({
|
|
107
|
-
description: `Keychain asset name to store the
|
|
107
|
+
description: `Keychain asset name to store the saved keychain under. Defaults to ${keychain_encryption_key_1.DEFAULT_KEYCHAIN_ASSET_NAME}.`,
|
|
108
108
|
required: false,
|
|
109
109
|
}),
|
|
110
110
|
};
|
|
111
|
-
|
|
111
|
+
IosKeychainSave.flags = {
|
|
112
112
|
...base_command_1.BaseCommand.baseFlags,
|
|
113
113
|
id: core_1.Flags.string({
|
|
114
|
-
description: 'iOS instance ID to
|
|
114
|
+
description: 'iOS instance ID to save from. Defaults to the last created iOS instance.',
|
|
115
115
|
}),
|
|
116
116
|
'asset-name': core_1.Flags.string({
|
|
117
|
-
description: `Asset name to store the
|
|
117
|
+
description: `Asset name to store the saved keychain under. Defaults to ${keychain_encryption_key_1.DEFAULT_KEYCHAIN_ASSET_NAME}. Prefer the positional <asset-name> argument.`,
|
|
118
118
|
}),
|
|
119
119
|
ttl: core_1.Flags.string({
|
|
120
120
|
description: 'Time-to-live as a Go duration (e.g. "24h", min 1m). Defaults to no expiry.',
|
|
121
121
|
}),
|
|
122
122
|
'encryption-key': core_1.Flags.string({
|
|
123
|
-
description: 'Base64/base64url 32-byte encryption key for the
|
|
123
|
+
description: 'Base64/base64url 32-byte encryption key for the saved keychain archive. Generated and printed if omitted.',
|
|
124
124
|
}),
|
|
125
125
|
'encryption-key-stdin': core_1.Flags.boolean({
|
|
126
126
|
description: 'Read the base64/base64url 32-byte encryption key from stdin.',
|
|
@@ -131,5 +131,5 @@ IosKeychainExport.flags = {
|
|
|
131
131
|
default: false,
|
|
132
132
|
}),
|
|
133
133
|
};
|
|
134
|
-
exports.default =
|
|
135
|
-
//# sourceMappingURL=
|
|
134
|
+
exports.default = IosKeychainSave;
|
|
135
|
+
//# sourceMappingURL=save.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../../../src/commands/ios/keychain/save.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseCommand } from '
|
|
1
|
+
import { BaseCommand } from '../../../base-command';
|
|
2
2
|
export default class XcodeRbe extends BaseCommand {
|
|
3
3
|
static summary: string;
|
|
4
4
|
static description: string;
|
|
@@ -8,6 +8,8 @@ export default class XcodeRbe extends BaseCommand {
|
|
|
8
8
|
port: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
9
|
daemon: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
10
|
stop: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
'auto-upload': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
'upload-ttl': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
13
|
ios: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
14
|
serve: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
15
|
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
@@ -63,10 +65,12 @@ export default class XcodeRbe extends BaseCommand {
|
|
|
63
65
|
/**
|
|
64
66
|
* Block on an already-open tunnel until a stop signal, then close it and
|
|
65
67
|
* best-effort stop the remote stack. Rejects if the tunnel reports a terminal
|
|
66
|
-
* disconnect (after its own reconnect attempts are exhausted).
|
|
68
|
+
* disconnect (after its own reconnect attempts are exhausted). With
|
|
69
|
+
* autoUpload set, a watcher uploads every successful build as the named
|
|
70
|
+
* asset for the tunnel's lifetime.
|
|
67
71
|
*/
|
|
68
72
|
private awaitTunnel;
|
|
69
73
|
/** Print the ready banner (or JSON) for both foreground and background modes. */
|
|
70
74
|
private printReady;
|
|
71
75
|
}
|
|
72
|
-
//# sourceMappingURL=
|
|
76
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/xcode/rbe/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAcpD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,OAAO,SAAqF;IACnG,MAAM,CAAC,WAAW,SAKwE;IAC1F,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MAyCV;IAEF,OAAO,CAAC,QAAQ,CAAyD;IAEnE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8Q1B;;;;OAIG;YACW,oBAAoB;IAsElC;;;;;OAKG;YACW,wBAAwB;IAWtC;;;;;;;;;;OAUG;YACW,SAAS;IAUvB;;;OAGG;YACW,qBAAqB;IAoGnC,sDAAsD;YACxC,UAAU;IAOxB;;;;;;;;OAQG;YACW,SAAS;IAiBvB;;;;;;OAMG;YACW,WAAW;IAyEzB,iFAAiF;IACjF,OAAO,CAAC,UAAU;CA0DnB"}
|
|
@@ -8,11 +8,11 @@ const path_1 = __importDefault(require("path"));
|
|
|
8
8
|
const child_process_1 = require("child_process");
|
|
9
9
|
const core_1 = require("@oclif/core");
|
|
10
10
|
const api_1 = require("@limrun/api");
|
|
11
|
-
const base_command_1 = require("
|
|
12
|
-
const config_1 = require("
|
|
13
|
-
const progress_1 = require("
|
|
14
|
-
const
|
|
15
|
-
const rbe_session_1 = require("
|
|
11
|
+
const base_command_1 = require("../../../base-command");
|
|
12
|
+
const config_1 = require("../../../lib/config");
|
|
13
|
+
const progress_1 = require("../../../lib/progress");
|
|
14
|
+
const rbe_auto_upload_1 = require("../../../lib/rbe-auto-upload");
|
|
15
|
+
const rbe_session_1 = require("../../../lib/rbe-session");
|
|
16
16
|
class XcodeRbe extends base_command_1.BaseCommand {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
@@ -21,6 +21,14 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
21
21
|
async run() {
|
|
22
22
|
const { flags } = await this.parse(XcodeRbe);
|
|
23
23
|
this.setParsedFlags(flags);
|
|
24
|
+
// Empty string would be treated as "off" by every truthiness check below,
|
|
25
|
+
// silently starting a tunnel without the uploads the user asked for.
|
|
26
|
+
// Checked before the serve branch so a hand-invoked serve child cannot
|
|
27
|
+
// slip past it either.
|
|
28
|
+
if (flags['auto-upload'] !== undefined && !flags['auto-upload']) {
|
|
29
|
+
this.error('--auto-upload requires a non-empty asset name.');
|
|
30
|
+
}
|
|
31
|
+
const autoUpload = flags['auto-upload'] ? { assetName: flags['auto-upload'], ttl: flags['upload-ttl'] } : undefined;
|
|
24
32
|
// Serve mode: the detached child. The parent already started the stack and
|
|
25
33
|
// generated the workspace config; this process only holds the tunnel and
|
|
26
34
|
// tears the stack down on exit. Requires --id (the parent always passes it).
|
|
@@ -36,7 +44,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
36
44
|
await this.withAuth(async () => {
|
|
37
45
|
const xcodeTarget = await this.resolveXcodeTarget(flags.id);
|
|
38
46
|
const client = await this.resolveXcodeClient(xcodeTarget);
|
|
39
|
-
await this.runTunnel(client, flags.port);
|
|
47
|
+
await this.runTunnel(client, flags.port, autoUpload);
|
|
40
48
|
});
|
|
41
49
|
return;
|
|
42
50
|
}
|
|
@@ -44,7 +52,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
44
52
|
// `.limrun/` and the try-import must live at the workspace root, and failing
|
|
45
53
|
// here avoids creating an instance when run outside a workspace. Walk up
|
|
46
54
|
// like Bazel does, so the command works from any subdirectory.
|
|
47
|
-
const workspaceRoot = (0,
|
|
55
|
+
const workspaceRoot = (0, api_1.findBazelWorkspaceRoot)(process.cwd());
|
|
48
56
|
if (!workspaceRoot) {
|
|
49
57
|
this.error('Not inside a Bazel workspace. Run `lim xcode rbe` from within the workspace you want ' +
|
|
50
58
|
'to build (a directory tree containing MODULE.bazel, WORKSPACE, or WORKSPACE.bazel).');
|
|
@@ -57,8 +65,20 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
57
65
|
// second one (and don't fail with a cryptic "port in use"); point at --stop.
|
|
58
66
|
const existing = (0, rbe_session_1.readRbePidFile)(workspaceRoot);
|
|
59
67
|
if (existing && (0, rbe_session_1.isProcessAlive)(existing.pid)) {
|
|
60
|
-
|
|
61
|
-
`grpc://127.0.0.1:${existing.port}
|
|
68
|
+
const running = `A background tunnel is already running for this workspace (PID ${existing.pid}, ` +
|
|
69
|
+
`grpc://127.0.0.1:${existing.port}` +
|
|
70
|
+
`${existing.autoUpload ? `, auto-uploading to "${existing.autoUpload}"` : ''}).`;
|
|
71
|
+
// A requested auto-upload config cannot be applied to a running tunnel;
|
|
72
|
+
// a silent success here would let CI believe uploads are armed (or the
|
|
73
|
+
// ttl changed) and ship a stale or early-expiring preview asset. An
|
|
74
|
+
// omitted --upload-ttl is not a conflict: it means keep the running ttl.
|
|
75
|
+
if (flags['auto-upload'] &&
|
|
76
|
+
(existing.autoUpload !== flags['auto-upload'] ||
|
|
77
|
+
(flags['upload-ttl'] !== undefined && existing.uploadTtl !== flags['upload-ttl']))) {
|
|
78
|
+
this.error(`${running} The requested --auto-upload config was NOT applied. ` +
|
|
79
|
+
'Stop it with `lim xcode rbe --stop` and re-run.');
|
|
80
|
+
}
|
|
81
|
+
this.info(running);
|
|
62
82
|
this.info('Stop it with `lim xcode rbe --stop`, then re-run to start fresh.');
|
|
63
83
|
return;
|
|
64
84
|
}
|
|
@@ -112,10 +132,10 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
112
132
|
// so we never leak a running stack with no client attached.
|
|
113
133
|
this.reporter.start('Starting remote build execution');
|
|
114
134
|
try {
|
|
115
|
-
const initial = await (0,
|
|
135
|
+
const initial = await (0, api_1.retryTransient)(() => client.startRbe(), {
|
|
116
136
|
log: (m) => this.reporter.appendLog(m),
|
|
117
137
|
});
|
|
118
|
-
const status = await (0,
|
|
138
|
+
const status = await (0, api_1.waitForRbeRunning)(client, initial);
|
|
119
139
|
xcodeVersion = status.xcodeVersion;
|
|
120
140
|
this.reporter.stop('success', `Remote build execution ready (Xcode ${xcodeVersion})`);
|
|
121
141
|
break;
|
|
@@ -147,7 +167,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
147
167
|
}
|
|
148
168
|
let generated;
|
|
149
169
|
try {
|
|
150
|
-
generated = (0,
|
|
170
|
+
generated = (0, api_1.writeRbeWorkspaceFiles)(workspaceRoot, xcodeVersion, flags.port);
|
|
151
171
|
}
|
|
152
172
|
catch (err) {
|
|
153
173
|
await client.stopRbe().catch(() => { });
|
|
@@ -161,7 +181,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
161
181
|
// builds if put in .bazelrc), hence it precedes `build` in the command.
|
|
162
182
|
// Infer a real app target so the printed command is runnable as-is; fall
|
|
163
183
|
// back to a placeholder when there's no single obvious target.
|
|
164
|
-
const inferredTarget = (0,
|
|
184
|
+
const inferredTarget = (0, api_1.inferBuildTarget)(workspaceRoot);
|
|
165
185
|
const target = inferredTarget ?? '//your:target';
|
|
166
186
|
const buildCmd = `bazelisk --digest_function=sha256 build --config=limrun ${target}`;
|
|
167
187
|
// --ios: create + attach a simulator so builds auto-install on it (server-side)
|
|
@@ -191,6 +211,8 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
191
211
|
xcodeVersion,
|
|
192
212
|
generated,
|
|
193
213
|
buildCmd,
|
|
214
|
+
autoUpload: flags['auto-upload'],
|
|
215
|
+
uploadTtl: flags['upload-ttl'],
|
|
194
216
|
});
|
|
195
217
|
}
|
|
196
218
|
catch (err) {
|
|
@@ -226,9 +248,10 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
226
248
|
instanceId,
|
|
227
249
|
background: false,
|
|
228
250
|
simulatorAttached: !!simInstanceId,
|
|
251
|
+
autoUpload: flags['auto-upload'],
|
|
229
252
|
});
|
|
230
253
|
try {
|
|
231
|
-
await this.awaitTunnel(tunnel, client);
|
|
254
|
+
await this.awaitTunnel(tunnel, client, autoUpload);
|
|
232
255
|
}
|
|
233
256
|
finally {
|
|
234
257
|
await this.deleteSim(simInstanceId);
|
|
@@ -268,7 +291,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
268
291
|
const signalled = signalIfAlive(info.pid, 'SIGTERM');
|
|
269
292
|
if (signalled) {
|
|
270
293
|
for (let i = 0; i < 300 && (0, rbe_session_1.isProcessAlive)(info.pid); i++) {
|
|
271
|
-
await (0,
|
|
294
|
+
await (0, api_1.defaultSleep)(100); // up to ~30s for graceful teardown
|
|
272
295
|
}
|
|
273
296
|
}
|
|
274
297
|
// Escalate to SIGKILL if it's wedged (e.g. stuck stopping the remote stack),
|
|
@@ -277,7 +300,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
277
300
|
if ((0, rbe_session_1.isProcessAlive)(info.pid)) {
|
|
278
301
|
forced = signalIfAlive(info.pid, 'SIGKILL');
|
|
279
302
|
for (let i = 0; i < 20 && (0, rbe_session_1.isProcessAlive)(info.pid); i++) {
|
|
280
|
-
await (0,
|
|
303
|
+
await (0, api_1.defaultSleep)(100); // up to ~2s
|
|
281
304
|
}
|
|
282
305
|
}
|
|
283
306
|
// Only drop the pidfile once the process is actually gone — otherwise a
|
|
@@ -350,7 +373,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
350
373
|
*/
|
|
351
374
|
async spawnBackgroundTunnel(opts) {
|
|
352
375
|
const apiKey = this.parsedFlags?.['api-key'];
|
|
353
|
-
const logPath = path_1.default.join(opts.workspaceRoot,
|
|
376
|
+
const logPath = path_1.default.join(opts.workspaceRoot, api_1.LIMRUN_DIR, 'rbe.log');
|
|
354
377
|
this.reporter.start('Starting background tunnel');
|
|
355
378
|
const logFd = fs_1.default.openSync(logPath, 'w');
|
|
356
379
|
const child = (0, child_process_1.spawn)(process.execPath, (0, rbe_session_1.buildServeChildArgs)({
|
|
@@ -358,6 +381,8 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
358
381
|
id: opts.instanceId,
|
|
359
382
|
port: opts.port,
|
|
360
383
|
apiKey,
|
|
384
|
+
autoUpload: opts.autoUpload,
|
|
385
|
+
uploadTtl: opts.uploadTtl,
|
|
361
386
|
}), { detached: true, stdio: ['ignore', logFd, logFd] });
|
|
362
387
|
fs_1.default.closeSync(logFd);
|
|
363
388
|
child.unref();
|
|
@@ -383,7 +408,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
383
408
|
ready = true;
|
|
384
409
|
break;
|
|
385
410
|
}
|
|
386
|
-
await (0,
|
|
411
|
+
await (0, api_1.defaultSleep)(200);
|
|
387
412
|
}
|
|
388
413
|
if (!ready) {
|
|
389
414
|
this.reporter.stop('failure');
|
|
@@ -406,6 +431,8 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
406
431
|
instanceId: opts.instanceId,
|
|
407
432
|
port: opts.port,
|
|
408
433
|
...(opts.simInstanceId ? { simInstanceId: opts.simInstanceId } : {}),
|
|
434
|
+
...(opts.autoUpload ? { autoUpload: opts.autoUpload } : {}),
|
|
435
|
+
...(opts.uploadTtl ? { uploadTtl: opts.uploadTtl } : {}),
|
|
409
436
|
});
|
|
410
437
|
this.printReady({
|
|
411
438
|
port: opts.port,
|
|
@@ -416,6 +443,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
416
443
|
instanceId: opts.instanceId,
|
|
417
444
|
background: true,
|
|
418
445
|
simulatorAttached: !!opts.simInstanceId,
|
|
446
|
+
autoUpload: opts.autoUpload,
|
|
419
447
|
pid,
|
|
420
448
|
logPath,
|
|
421
449
|
});
|
|
@@ -436,7 +464,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
436
464
|
* the child if it exits within a short liveness window, so a slow tunnel-open
|
|
437
465
|
* failure would otherwise leave the remote stack running with no owner.
|
|
438
466
|
*/
|
|
439
|
-
async runTunnel(client, port) {
|
|
467
|
+
async runTunnel(client, port, autoUpload) {
|
|
440
468
|
let tunnel;
|
|
441
469
|
try {
|
|
442
470
|
tunnel = await this.openTunnel(client, port);
|
|
@@ -445,14 +473,24 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
445
473
|
await client.stopRbe().catch(() => { });
|
|
446
474
|
this.error(`Failed to open the remote-execution tunnel: ${err instanceof Error ? err.message : String(err)}`);
|
|
447
475
|
}
|
|
448
|
-
await this.awaitTunnel(tunnel, client);
|
|
476
|
+
await this.awaitTunnel(tunnel, client, autoUpload);
|
|
449
477
|
}
|
|
450
478
|
/**
|
|
451
479
|
* Block on an already-open tunnel until a stop signal, then close it and
|
|
452
480
|
* best-effort stop the remote stack. Rejects if the tunnel reports a terminal
|
|
453
|
-
* disconnect (after its own reconnect attempts are exhausted).
|
|
481
|
+
* disconnect (after its own reconnect attempts are exhausted). With
|
|
482
|
+
* autoUpload set, a watcher uploads every successful build as the named
|
|
483
|
+
* asset for the tunnel's lifetime.
|
|
454
484
|
*/
|
|
455
|
-
async awaitTunnel(tunnel, client) {
|
|
485
|
+
async awaitTunnel(tunnel, client, autoUpload) {
|
|
486
|
+
const watcher = autoUpload ?
|
|
487
|
+
(0, rbe_auto_upload_1.startAutoUploadWatcher)({
|
|
488
|
+
client,
|
|
489
|
+
assetName: autoUpload.assetName,
|
|
490
|
+
ttl: autoUpload.ttl,
|
|
491
|
+
log: (msg) => this.info(msg),
|
|
492
|
+
})
|
|
493
|
+
: undefined;
|
|
456
494
|
try {
|
|
457
495
|
await new Promise((resolve, reject) => {
|
|
458
496
|
const keepAlive = setInterval(() => { }, 1 << 30);
|
|
@@ -502,6 +540,9 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
502
540
|
});
|
|
503
541
|
}
|
|
504
542
|
finally {
|
|
543
|
+
// Awaited so an upload already in flight (a completed build's artifact)
|
|
544
|
+
// finishes before the stack goes down; queued ones are skipped.
|
|
545
|
+
await watcher?.stop();
|
|
505
546
|
tunnel.close();
|
|
506
547
|
await client.stopRbe().catch(() => { });
|
|
507
548
|
}
|
|
@@ -515,6 +556,7 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
515
556
|
xcodeVersion: opts.xcodeVersion,
|
|
516
557
|
workspaceRoot: opts.workspaceRoot,
|
|
517
558
|
simulatorAttached: opts.simulatorAttached,
|
|
559
|
+
...(opts.autoUpload ? { autoUpload: opts.autoUpload } : {}),
|
|
518
560
|
generatedConfig: {
|
|
519
561
|
buildFile: opts.generated.buildFile,
|
|
520
562
|
bazelrcFragment: opts.generated.bazelrcFragment,
|
|
@@ -532,6 +574,9 @@ class XcodeRbe extends base_command_1.BaseCommand {
|
|
|
532
574
|
this.output('');
|
|
533
575
|
this.output(`Endpoint: grpc://127.0.0.1:${opts.port}`);
|
|
534
576
|
this.output(`Builds: ${this.consoleBuildUrl(opts.instanceId)}`);
|
|
577
|
+
if (opts.autoUpload) {
|
|
578
|
+
this.output(`Uploads: every successful build refreshes asset "${opts.autoUpload}"`);
|
|
579
|
+
}
|
|
535
580
|
if (opts.background) {
|
|
536
581
|
this.output(`Logs: ${opts.logPath}`);
|
|
537
582
|
this.output(`Stop: lim xcode rbe --stop (or: kill ${opts.pid})`);
|
|
@@ -556,6 +601,7 @@ XcodeRbe.description = 'Start the embedded Bazel Remote Build Execution stack on
|
|
|
556
601
|
'on start) or by deleting the instance. Pass --no-daemon to keep it in the foreground.';
|
|
557
602
|
XcodeRbe.examples = [
|
|
558
603
|
'<%= config.bin %> xcode rbe',
|
|
604
|
+
'<%= config.bin %> xcode rbe --auto-upload preview/my-app --upload-ttl 24h',
|
|
559
605
|
'<%= config.bin %> xcode rbe --no-daemon',
|
|
560
606
|
'<%= config.bin %> xcode rbe --id <xcode-instance-ID>',
|
|
561
607
|
'<%= config.bin %> xcode rbe --port 9980',
|
|
@@ -577,6 +623,16 @@ XcodeRbe.flags = {
|
|
|
577
623
|
stop: core_1.Flags.boolean({
|
|
578
624
|
description: 'Stop the background tunnel running for this workspace.',
|
|
579
625
|
default: false,
|
|
626
|
+
exclusive: ['auto-upload'],
|
|
627
|
+
}),
|
|
628
|
+
'auto-upload': core_1.Flags.string({
|
|
629
|
+
description: 'Upload every successful build as an asset with this name, automatically at build end. ' +
|
|
630
|
+
'The asset is refreshed on each rebuild; upload results land in the tunnel log.',
|
|
631
|
+
exclusive: ['stop'],
|
|
632
|
+
}),
|
|
633
|
+
'upload-ttl': core_1.Flags.string({
|
|
634
|
+
description: 'Asset TTL for --auto-upload as a Go duration (e.g. 24h, 30m).',
|
|
635
|
+
dependsOn: ['auto-upload'],
|
|
580
636
|
}),
|
|
581
637
|
ios: core_1.Flags.boolean({
|
|
582
638
|
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.',
|
|
@@ -630,4 +686,4 @@ function readLogTail(logPath, lines = 20) {
|
|
|
630
686
|
return '(no log output captured)';
|
|
631
687
|
}
|
|
632
688
|
}
|
|
633
|
-
//# sourceMappingURL=
|
|
689
|
+
//# sourceMappingURL=index.js.map
|