@tamagui/native-ci 2.0.0-rc.3 → 2.0.0-rc.30

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/cli.mjs CHANGED
@@ -5,7 +5,7 @@ import { setGitHubOutput, isGitHubActions, isCI } from "./runner.mjs";
5
5
  import { ensureIosDeps, ensureAndroidDeps, ensureMaestro, printDepsStatus } from "./deps.mjs";
6
6
  import { withMetro } from "./metro.mjs";
7
7
  import { runDetoxTests } from "./detox.mjs";
8
- import { ensureIOSFolder, ensureIOSApp } from "./ios";
8
+ import { ensureIOSFolder, ensureIOSApp, ensureBootedSimulator, ensureAppInstalled, getBootedSimulatorUDID, getMaestroBundleId } from "./ios";
9
9
  import { setupAndroidDevice, ensureAndroidFolder } from "./android";
10
10
  const HELP = `
11
11
  native-ci - Native CI/CD helpers for Expo apps
@@ -116,7 +116,7 @@ try {
116
116
  isCI() && !process.env.NATIVE_CI_FORCE_RUN && (console.info("Skipping native tests in CI (handled by separate workflow)"), console.info("Set NATIVE_CI_FORCE_RUN=1 to force run"), process.exit(0));
117
117
  const platform = subcommand || "ios";
118
118
  if (platform === "ios") {
119
- await ensureIosDeps();
119
+ ensureBootedSimulator(), await ensureIosDeps();
120
120
  const config = options.config || "ios.sim.debug";
121
121
  console.info("=== iOS Detox Test Runner ==="), console.info(`Config: ${config}`), console.info(`Project root: ${options.projectRoot}`), process.chdir(options.projectRoot), await ensureIOSFolder(), await ensureIOSApp(config);
122
122
  const exitCode = await withMetro("ios", async () => runDetoxTests({
@@ -139,19 +139,28 @@ try {
139
139
  }));
140
140
  process.exit(exitCode);
141
141
  } else if (platform === "maestro") {
142
- await ensureMaestro();
142
+ ensureBootedSimulator(), await ensureMaestro();
143
143
  const flow = args[0] || "";
144
144
  console.info("=== Maestro Test Runner ==="), console.info(`Flow: ${flow || "all"}`), console.info(`Project root: ${options.projectRoot}`), process.chdir(options.projectRoot);
145
+ const udid = getBootedSimulatorUDID(),
146
+ bundleId = getMaestroBundleId(options.projectRoot);
147
+ await ensureAppInstalled({
148
+ projectRoot: options.projectRoot,
149
+ bundleId,
150
+ udid
151
+ });
145
152
  const exitCode = await withMetro("ios", async () => {
146
153
  const {
147
154
  $
148
155
  } = await import("bun"),
149
- flowArg = flow ? `./flows/${flow}` : "./flows";
150
- return (await $`maestro test ${flowArg} --exclude-tags=util --no-ansi`.nothrow()).exitCode;
156
+ flowArg = flow ? `./flows/${flow}` : "./flows",
157
+ udidArgs = ["--udid", udid],
158
+ debugDir = `${options.projectRoot}/.maestro-debug`;
159
+ return (await $`maestro test ${flowArg} --exclude-tags=util --no-ansi --debug-output=${debugDir} ${udidArgs}`.nothrow()).exitCode;
151
160
  });
152
161
  process.exit(exitCode);
153
162
  } else if (platform === "all") {
154
- console.info(`=== Running All Native Tests ===
163
+ ensureBootedSimulator(), console.info(`=== Running All Native Tests ===
155
164
  `), await ensureIosDeps(), console.info(`
156
165
  --- iOS Tests ---
157
166
  `), process.chdir(options.projectRoot), await ensureIOSFolder(), await ensureIOSApp(options.config || "ios.sim.debug");
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["generateFingerprint","generatePreFingerprintHash","createCacheKey","saveFingerprintToKV","getFingerprintFromKV","saveCache","loadCache","setGitHubOutput","isGitHubActions","isCI","ensureIosDeps","ensureAndroidDeps","ensureMaestro","printDepsStatus","withMetro","runDetoxTests","ensureIOSFolder","ensureIOSApp","setupAndroidDevice","ensureAndroidFolder","HELP","parseArgs","argv","args2","options2","projectRoot","process","cwd","config","recordLogs","retries","headless","prefix","githubOutput","json","help","i","length","arg","val","Number","parseInt","isNaN","startsWith","push","command","subcommand","args","slice","options","validatePlatform","value","console","error","exit","getKVCredentials","url","env","KV_STORE_REDIS_REST_URL","token","KV_STORE_REDIS_REST_TOKEN","info","NATIVE_CI_FORCE_RUN","platform","chdir","exitCode","flow","$","flowArg","nothrow","iosExit","err","androidExit","success","result","hash","fingerprint","JSON","stringify","CACHE_FILE","iosResult","androidResult","iosFingerprint","androidFingerprint","cache","ios","android","iosChanged","androidChanged","timestamp","Date","toISOString","files","filter","Boolean","cacheKey","key","kv","message"],"sources":["../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["generateFingerprint","generatePreFingerprintHash","createCacheKey","saveFingerprintToKV","getFingerprintFromKV","saveCache","loadCache","setGitHubOutput","isGitHubActions","isCI","ensureIosDeps","ensureAndroidDeps","ensureMaestro","printDepsStatus","withMetro","runDetoxTests","ensureIOSFolder","ensureIOSApp","ensureBootedSimulator","ensureAppInstalled","getBootedSimulatorUDID","getMaestroBundleId","setupAndroidDevice","ensureAndroidFolder","HELP","parseArgs","argv","args2","options2","projectRoot","process","cwd","config","recordLogs","retries","headless","prefix","githubOutput","json","help","i","length","arg","val","Number","parseInt","isNaN","startsWith","push","command","subcommand","args","slice","options","validatePlatform","value","console","error","exit","getKVCredentials","url","env","KV_STORE_REDIS_REST_URL","token","KV_STORE_REDIS_REST_TOKEN","info","NATIVE_CI_FORCE_RUN","platform","chdir","exitCode","flow","udid","bundleId","$","flowArg","udidArgs","debugDir","nothrow","iosExit","err","androidExit","success","result","hash","fingerprint","JSON","stringify","CACHE_FILE","iosResult","androidResult","iosFingerprint","androidFingerprint","cache","ios","android","iosChanged","androidChanged","timestamp","Date","toISOString","files","filter","Boolean","cacheKey","key","kv","message"],"sources":["../src/cli.ts"],"sourcesContent":[null],"mappings":";AAUA,SAASA,mBAAA,EAAqBC,0BAAA,QAAkC;AAChE,SACEC,cAAA,EACAC,mBAAA,EACAC,oBAAA,EACAC,SAAA,EACAC,SAAA,QACK;AACP,SAASC,eAAA,EAAiBC,eAAA,EAAiBC,IAAA,QAAY;AACvD,SAEEC,aAAA,EACAC,iBAAA,EACAC,aAAA,EACAC,eAAA,QACK;AACP,SAASC,SAAA,QAAiB;AAC1B,SAAyBC,aAAA,QAAqB;AAC9C,SACEC,eAAA,EACAC,YAAA,EACAC,qBAAA,EACAC,kBAAA,EACAC,sBAAA,EACAC,kBAAA,QACK;AACP,SAASC,kBAAA,EAAoBC,mBAAA,QAA2B;AAGxD,MAAMC,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsEb,SAASC,UAAUC,IAAA,EAA4B;EAC7C,MAAMC,KAAA,GAAiB,EAAC;IAClBC,QAAA,GAAU;MACdC,WAAA,EAAaC,OAAA,CAAQC,GAAA,CAAI;MACzBC,MAAA,EAAQ;MACRC,UAAA,EAAY;MACZC,OAAA,EAAS;MACTC,QAAA,EAAU;MACVC,MAAA,EAAQ;MACRC,YAAA,EAAc;MACdC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;EAEA,IAAIC,CAAA,GAAI;EACR,OAAOA,CAAA,GAAId,IAAA,CAAKe,MAAA,GAAQ;IACtB,MAAMC,GAAA,GAAMhB,IAAA,CAAKc,CAAC;IAElB,IAAIE,GAAA,KAAQ,oBAAoBhB,IAAA,CAAKc,CAAA,GAAI,CAAC,GACxCZ,QAAA,CAAQC,WAAA,GAAcH,IAAA,CAAK,EAAEc,CAAC,WACrBE,GAAA,KAAQ,cAAchB,IAAA,CAAKc,CAAA,GAAI,CAAC,GACzCZ,QAAA,CAAQI,MAAA,GAASN,IAAA,CAAK,EAAEc,CAAC,WAChBE,GAAA,KAAQ,mBAAmBhB,IAAA,CAAKc,CAAA,GAAI,CAAC,GAC9CZ,QAAA,CAAQK,UAAA,GAAaP,IAAA,CAAK,EAAEc,CAAC,WACpBE,GAAA,KAAQ,eAAehB,IAAA,CAAKc,CAAA,GAAI,CAAC,GAAG;MAC7C,MAAMG,GAAA,GAAMC,MAAA,CAAOC,QAAA,CAASnB,IAAA,CAAK,EAAEc,CAAC,GAAG,EAAE;MACrC,CAACI,MAAA,CAAOE,KAAA,CAAMH,GAAG,KAAKA,GAAA,IAAO,MAC/Bf,QAAA,CAAQM,OAAA,GAAUS,GAAA;IAEtB,OAAWD,GAAA,KAAQ,cAAchB,IAAA,CAAKc,CAAA,GAAI,CAAC,IACzCZ,QAAA,CAAQQ,MAAA,GAASV,IAAA,CAAK,EAAEc,CAAC,IAChBE,GAAA,KAAQ,oBACjBd,QAAA,CAAQS,YAAA,GAAe,KACdK,GAAA,KAAQ,WACjBd,QAAA,CAAQU,IAAA,GAAO,KACNI,GAAA,KAAQ,YAAYA,GAAA,KAAQ,OACrCd,QAAA,CAAQW,IAAA,GAAO,KACLG,GAAA,CAAIK,UAAA,CAAW,GAAG,KAC5BpB,KAAA,CAAKqB,IAAA,CAAKN,GAAG;IAGfF,CAAA;EACF;EAEA,OAAO;IACLS,OAAA,EAAStB,KAAA,CAAK,CAAC,KAAK;IACpBuB,UAAA,EAAYvB,KAAA,CAAK,CAAC,KAAK;IACvBwB,IAAA,EAAMxB,KAAA,CAAKyB,KAAA,CAAM,CAAC;IAClBC,OAAA,EAAAzB;EACF;AACF;AAEA,SAAS0B,iBAAiBC,KAAA,EAAyB;EACjD,OAAIA,KAAA,KAAU,SAASA,KAAA,KAAU,cAC/BC,OAAA,CAAQC,KAAA,CAAM,4CAA4C,GAC1D3B,OAAA,CAAQ4B,IAAA,CAAK,CAAC,IAETH,KAAA;AACT;AAEA,SAASI,iBAAA,EAAmD;EAC1D,MAAMC,GAAA,GAAM9B,OAAA,CAAQ+B,GAAA,CAAIC,uBAAA;IAClBC,KAAA,GAAQjC,OAAA,CAAQ+B,GAAA,CAAIG,yBAAA;EAE1B,QAAI,CAACJ,GAAA,IAAO,CAACG,KAAA,MACXP,OAAA,CAAQC,KAAA,CAAM,uEAAuE,GACrF3B,OAAA,CAAQ4B,IAAA,CAAK,CAAC,IAGT;IAAEE,GAAA;IAAKG;EAAM;AACtB;AAGA,MAAM;EAAEd,OAAA;EAASC,UAAA;EAAYC,IAAA;EAAME;AAAQ,IAAI5B,SAAA,CAAUK,OAAA,CAAQJ,IAAA,CAAK0B,KAAA,CAAM,CAAC,CAAC;AAAA,CAE1EC,OAAA,CAAQd,IAAA,IAAQ,CAACU,OAAA,MACnBO,OAAA,CAAQS,IAAA,CAAKzC,IAAI,GACjBM,OAAA,CAAQ4B,IAAA,CAAKL,OAAA,CAAQd,IAAA,GAAO,IAAI,CAAC;AAGnC,IAAI;EACF,QAAQU,OAAA;IAAS;IAAA;IAAA;IAIf,KAAK;MAAQ;QAEPxC,IAAA,CAAK,KAAK,CAACqB,OAAA,CAAQ+B,GAAA,CAAIK,mBAAA,KACzBV,OAAA,CAAQS,IAAA,CAAK,4DAA4D,GACzET,OAAA,CAAQS,IAAA,CAAK,wCAAwC,GACrDnC,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAGhB,MAAMS,QAAA,GAAWjB,UAAA,IAAc;QAE/B,IAAIiB,QAAA,KAAa,OAAO;UACtBjD,qBAAA,CAAsB,GAGtB,MAAMR,aAAA,CAAc;UAEpB,MAAMsB,MAAA,GAASqB,OAAA,CAAQrB,MAAA,IAAU;UACjCwB,OAAA,CAAQS,IAAA,CAAK,+BAA+B,GAC5CT,OAAA,CAAQS,IAAA,CAAK,WAAWjC,MAAM,EAAE,GAChCwB,OAAA,CAAQS,IAAA,CAAK,iBAAiBZ,OAAA,CAAQxB,WAAW,EAAE,GAEnDC,OAAA,CAAQsC,KAAA,CAAMf,OAAA,CAAQxB,WAAW,GACjC,MAAMb,eAAA,CAAgB,GACtB,MAAMC,YAAA,CAAae,MAAM;UAEzB,MAAMqC,QAAA,GAAW,MAAMvD,SAAA,CAAU,OAAO,YAC/BC,aAAA,CAAc;YACnBiB,MAAA;YACAH,WAAA,EAAawB,OAAA,CAAQxB,WAAA;YACrBI,UAAA,EAAYoB,OAAA,CAAQpB,UAAA;YACpBC,OAAA,EAASmB,OAAA,CAAQnB;UACnB,CAAC,CACF;UACDJ,OAAA,CAAQ4B,IAAA,CAAKW,QAAQ;QACvB,WAAWF,QAAA,KAAa,WAAW;UAEjC,MAAMxD,iBAAA,CAAkB;UAExB,MAAMqB,MAAA,GAASqB,OAAA,CAAQrB,MAAA,IAAU;UACjCwB,OAAA,CAAQS,IAAA,CAAK,mCAAmC,GAChDT,OAAA,CAAQS,IAAA,CAAK,WAAWjC,MAAM,EAAE,GAChCwB,OAAA,CAAQS,IAAA,CAAK,iBAAiBZ,OAAA,CAAQxB,WAAW,EAAE,GACnD2B,OAAA,CAAQS,IAAA,CAAK,aAAaZ,OAAA,CAAQlB,QAAQ,EAAE,GAE5CL,OAAA,CAAQsC,KAAA,CAAMf,OAAA,CAAQxB,WAAW,GACjC,MAAMN,mBAAA,CAAoB,GAG1B,MAAMD,kBAAA,CAAmB;UAEzB,MAAM+C,QAAA,GAAW,MAAMvD,SAAA,CAAU,WAAW,YACnCC,aAAA,CAAc;YACnBiB,MAAA;YACAH,WAAA,EAAawB,OAAA,CAAQxB,WAAA;YACrBI,UAAA,EAAYoB,OAAA,CAAQpB,UAAA;YACpBC,OAAA,EAASmB,OAAA,CAAQnB,OAAA;YACjBC,QAAA,EAAUkB,OAAA,CAAQlB;UACpB,CAAC,CACF;UACDL,OAAA,CAAQ4B,IAAA,CAAKW,QAAQ;QACvB,WAAWF,QAAA,KAAa,WAAW;UACjCjD,qBAAA,CAAsB,GAGtB,MAAMN,aAAA,CAAc;UAEpB,MAAM0D,IAAA,GAAOnB,IAAA,CAAK,CAAC,KAAK;UACxBK,OAAA,CAAQS,IAAA,CAAK,6BAA6B,GAC1CT,OAAA,CAAQS,IAAA,CAAK,SAASK,IAAA,IAAQ,KAAK,EAAE,GACrCd,OAAA,CAAQS,IAAA,CAAK,iBAAiBZ,OAAA,CAAQxB,WAAW,EAAE,GAEnDC,OAAA,CAAQsC,KAAA,CAAMf,OAAA,CAAQxB,WAAW;UAGjC,MAAM0C,IAAA,GAAOnD,sBAAA,CAAuB;YAG9BoD,QAAA,GAAWnD,kBAAA,CAAmBgC,OAAA,CAAQxB,WAAW;UACvD,MAAMV,kBAAA,CAAmB;YAAEU,WAAA,EAAawB,OAAA,CAAQxB,WAAA;YAAa2C,QAAA;YAAUD;UAAK,CAAC;UAG7E,MAAMF,QAAA,GAAW,MAAMvD,SAAA,CAAU,OAAO,YAAY;YAClD,MAAM;gBAAE2D;cAAE,IAAI,MAAM,OAAO,KAAK;cAE1BC,OAAA,GAAUJ,IAAA,GAAO,WAAWA,IAAI,KAAK;cACrCK,QAAA,GAAW,CAAC,UAAUJ,IAAI;cAC1BK,QAAA,GAAW,GAAGvB,OAAA,CAAQxB,WAAW;YAGvC,QADE,MAAM4C,CAAA,gBAAiBC,OAAO,iDAAiDE,QAAQ,IAAID,QAAQ,GAAGE,OAAA,CAAQ,GAClGR,QAAA;UAChB,CAAC;UACDvC,OAAA,CAAQ4B,IAAA,CAAKW,QAAQ;QACvB,WAAWF,QAAA,KAAa,OAAO;UAC7BjD,qBAAA,CAAsB,GAEtBsC,OAAA,CAAQS,IAAA,CAAK;AAAA,CAAoC,GAGjD,MAAMvD,aAAA,CAAc,GACpB8C,OAAA,CAAQS,IAAA,CAAK;AAAA;AAAA,CAAuB,GACpCnC,OAAA,CAAQsC,KAAA,CAAMf,OAAA,CAAQxB,WAAW,GACjC,MAAMb,eAAA,CAAgB,GACtB,MAAMC,YAAA,CAAaoC,OAAA,CAAQrB,MAAA,IAAU,eAAe;UAEpD,IAAI8C,OAAA,GAAU;UACd,IAAI;YACFA,OAAA,GAAU,MAAMhE,SAAA,CAAU,OAAO,YACxBC,aAAA,CAAc;cACnBiB,MAAA,EAAQqB,OAAA,CAAQrB,MAAA,IAAU;cAC1BH,WAAA,EAAawB,OAAA,CAAQxB,WAAA;cACrBI,UAAA,EAAYoB,OAAA,CAAQpB,UAAA;cACpBC,OAAA,EAASmB,OAAA,CAAQnB;YACnB,CAAC,CACF;UACH,SAAS6C,GAAA,EAAK;YACZvB,OAAA,CAAQC,KAAA,CAAM,qBAAqBsB,GAAG,GACtCD,OAAA,GAAU;UACZ;UAGA,MAAMnE,iBAAA,CAAkB,GACxB6C,OAAA,CAAQS,IAAA,CAAK;AAAA;AAAA,CAA2B,GACxC,MAAM1C,mBAAA,CAAoB,GAC1B,MAAMD,kBAAA,CAAmB;UAEzB,IAAI0D,WAAA,GAAc;UAClB,IAAI;YACFA,WAAA,GAAc,MAAMlE,SAAA,CAAU,WAAW,YAChCC,aAAA,CAAc;cACnBiB,MAAA,EAAQqB,OAAA,CAAQrB,MAAA,IAAU;cAC1BH,WAAA,EAAawB,OAAA,CAAQxB,WAAA;cACrBI,UAAA,EAAYoB,OAAA,CAAQpB,UAAA;cACpBC,OAAA,EAASmB,OAAA,CAAQnB,OAAA;cACjBC,QAAA,EAAUkB,OAAA,CAAQlB;YACpB,CAAC,CACF;UACH,SAAS4C,GAAA,EAAK;YACZvB,OAAA,CAAQC,KAAA,CAAM,yBAAyBsB,GAAG,GAC1CC,WAAA,GAAc;UAChB;UAEA,MAAMC,OAAA,GAAUH,OAAA,KAAY,KAAKE,WAAA,KAAgB;UACjDxB,OAAA,CAAQS,IAAA,CAAK;AAAA,qBAAwB,GACrCT,OAAA,CAAQS,IAAA,CAAK,QAAQa,OAAA,KAAY,IAAI,WAAW,QAAQ,EAAE,GAC1DtB,OAAA,CAAQS,IAAA,CAAK,YAAYe,WAAA,KAAgB,IAAI,WAAW,QAAQ,EAAE,GAClElD,OAAA,CAAQ4B,IAAA,CAAKuB,OAAA,GAAU,IAAI,CAAC;QAC9B,OACEzB,OAAA,CAAQC,KAAA,CAAM,0BAA0BU,QAAQ,EAAE,GAClDX,OAAA,CAAQS,IAAA,CAAK,iDAAiD,GAC9DnC,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAEhB;MACF;IAAA;IAAA;IAAA;IAKA,KAAK;MAAQ;QACP,CAACR,UAAA,IAAcA,UAAA,KAAe,WAChCrC,eAAA,CAAgB,IACPqC,UAAA,KAAe,aACxBM,OAAA,CAAQS,IAAA,CAAK;AAAA,CAAkC,GAC/C,MAAMvD,aAAA,CAAc,GACpB,MAAME,aAAA,CAAc,GACpB4C,OAAA,CAAQS,IAAA,CAAK;AAAA,4BAA+B,KACnCf,UAAA,KAAe,gBACxB,MAAMxC,aAAA,CAAc,IACXwC,UAAA,KAAe,oBACxB,MAAMvC,iBAAA,CAAkB,IACfuC,UAAA,KAAe,oBACxB,MAAMtC,aAAA,CAAc,KAEpB4C,OAAA,CAAQC,KAAA,CAAM,4BAA4BP,UAAU,EAAE,GACtDpB,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAEhB;MACF;IAAA;IAAA;IAAA;IAKA,KAAK;MAAe;QAClB,MAAMS,QAAA,GAAWb,gBAAA,CAAiBJ,UAAU;UAEtCgC,MAAA,GAAS,MAAMlF,mBAAA,CAAoB;YACvCmE,QAAA;YACAtC,WAAA,EAAawB,OAAA,CAAQxB;UACvB,CAAC;QAED,CAAIwB,OAAA,CAAQhB,YAAA,IAAgB7B,eAAA,CAAgB,OAC1CD,eAAA,CAAgB,eAAe2E,MAAA,CAAOC,IAAI,GAC1C5E,eAAA,CACE,aACAL,cAAA,CAAe;UACbiE,QAAA;UACAiB,WAAA,EAAaF,MAAA,CAAOC,IAAA;UACpB/C,MAAA,EAAQiB,OAAA,CAAQjB;QAClB,CAAC,CACH,IAGEiB,OAAA,CAAQf,IAAA,GACVkB,OAAA,CAAQS,IAAA,CAAKoB,IAAA,CAAKC,SAAA,CAAUJ,MAAA,EAAQ,MAAM,CAAC,CAAC,IAE5C1B,OAAA,CAAQS,IAAA,CAAKiB,MAAA,CAAOC,IAAI;QAE1B;MACF;IAEA,KAAK;MAAoB;QACvB,MAAMI,UAAA,GAAa;QAEnB/B,OAAA,CAAQS,IAAA,CAAK;AAAA,CAA8B;QAE3C,MAAMuB,SAAA,GAAY,MAAMxF,mBAAA,CAAoB;YAC1CmE,QAAA,EAAU;YACVtC,WAAA,EAAawB,OAAA,CAAQxB;UACvB,CAAC;UACK4D,aAAA,GAAgB,MAAMzF,mBAAA,CAAoB;YAC9CmE,QAAA,EAAU;YACVtC,WAAA,EAAawB,OAAA,CAAQxB;UACvB,CAAC;UAEK6D,cAAA,GAAiBF,SAAA,CAAUL,IAAA;UAC3BQ,kBAAA,GAAqBF,aAAA,CAAcN,IAAA;QAEzC3B,OAAA,CAAQS,IAAA,CAAK,uBAAuB,GACpCT,OAAA,CAAQS,IAAA,CAAK,cAAcyB,cAAc,EAAE,GAC3ClC,OAAA,CAAQS,IAAA,CAAK,cAAc0B,kBAAkB,EAAE,GAC/CnC,OAAA,CAAQS,IAAA,CAAK,EAAE;QAEf,MAAM2B,KAAA,GAAQtF,SAAA,CAAUiF,UAAU;QAElC,IAAIK,KAAA,EAAOC,GAAA,IAAOD,KAAA,EAAOE,OAAA,EAAS;UAChCtC,OAAA,CAAQS,IAAA,CAAK,qCAAqC,GAClDT,OAAA,CAAQS,IAAA,CAAK,cAAc2B,KAAA,CAAMC,GAAG,EAAE,GACtCrC,OAAA,CAAQS,IAAA,CAAK,cAAc2B,KAAA,CAAME,OAAO,EAAE,GAC1CtC,OAAA,CAAQS,IAAA,CAAK,EAAE;UAEf,MAAM8B,UAAA,GAAaH,KAAA,CAAMC,GAAA,KAAQH,cAAA;YAC3BM,cAAA,GAAiBJ,KAAA,CAAME,OAAA,KAAYH,kBAAA;UAErCI,UAAA,IAAcC,cAAA,IAChBxC,OAAA,CAAQS,IAAA,CAAK,uBAAuB,GAChC8B,UAAA,IACFvC,OAAA,CAAQS,IAAA,CAAK,0DAA0D,GACrE+B,cAAA,IACFxC,OAAA,CAAQS,IAAA,CACN,kEACF,KAEFT,OAAA,CAAQS,IAAA,CAAK,wCAAwC;QAEzD,OACET,OAAA,CAAQS,IAAA,CAAK,kCAAkC;QAIjD5D,SAAA,CAAUkF,UAAA,EAAY;UACpBM,GAAA,EAAKH,cAAA;UACLI,OAAA,EAASH,kBAAA;UACTM,SAAA,GAAW,mBAAIC,IAAA,CAAK,GAAEC,WAAA,CAAY;QACpC,CAAC,GACD3C,OAAA,CAAQS,IAAA,CAAK;AAAA,wBAA2BsB,UAAU,EAAE,GAEpD/B,OAAA,CAAQS,IAAA,CAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAOlB;QACK;MACF;IAEA,KAAK;MAAY;QACf,MAAMmC,KAAA,GAAQ,CAAClD,UAAA,EAAY,GAAGC,IAAI,EAAEkD,MAAA,CAAOC,OAAO;QAC9CF,KAAA,CAAM3D,MAAA,KAAW,MACnBe,OAAA,CAAQC,KAAA,CAAM,mCAAmC,GACjD3B,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAGhB,MAAMyB,IAAA,GAAOlF,0BAAA,CAA2BmG,KAAA,EAAO/C,OAAA,CAAQxB,WAAW;QAElE,CAAIwB,OAAA,CAAQhB,YAAA,IAAgB7B,eAAA,CAAgB,MAC1CD,eAAA,CAAgB,wBAAwB4E,IAAI,GAG1C9B,OAAA,CAAQf,IAAA,GACVkB,OAAA,CAAQS,IAAA,CAAKoB,IAAA,CAAKC,SAAA,CAAU;UAAEH,IAAA;UAAMiB;QAAM,GAAG,MAAM,CAAC,CAAC,IAErD5C,OAAA,CAAQS,IAAA,CAAKkB,IAAI;QAEnB;MACF;IAEA,KAAK;MAAa;QAChB,MAAMhB,QAAA,GAAWb,gBAAA,CAAiBJ,UAAU;UACtCkC,WAAA,GAAcjC,IAAA,CAAK,CAAC;QAErBiC,WAAA,KACH5B,OAAA,CAAQC,KAAA,CAAM,gCAAgC,GAC9C3B,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAGhB,MAAM6C,QAAA,GAAWrG,cAAA,CAAe;UAC9BiE,QAAA;UACAiB,WAAA;UACAhD,MAAA,EAAQiB,OAAA,CAAQjB;QAClB,CAAC;QAED,CAAIiB,OAAA,CAAQhB,YAAA,IAAgB7B,eAAA,CAAgB,MAC1CD,eAAA,CAAgB,aAAagG,QAAQ,GAGvC/C,OAAA,CAAQS,IAAA,CAAKsC,QAAQ;QACrB;MACF;IAAA;IAAA;IAAA;IAKA,KAAK;MAAU;QACb,MAAMC,GAAA,GAAMtD,UAAA;QACPsD,GAAA,KACHhD,OAAA,CAAQC,KAAA,CAAM,wBAAwB,GACtC3B,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAGhB,MAAM+C,EAAA,GAAK9C,gBAAA,CAAiB;UACtBJ,KAAA,GAAQ,MAAMnD,oBAAA,CAAqBqG,EAAA,EAAID,GAAG;QAEhD,CAAInD,OAAA,CAAQhB,YAAA,IAAgB7B,eAAA,CAAgB,OAC1CD,eAAA,CAAgB,SAASgD,KAAA,IAAS,EAAE,GACpChD,eAAA,CAAgB,SAASgD,KAAA,GAAQ,SAAS,OAAO,IAG/CA,KAAA,GACFC,OAAA,CAAQS,IAAA,CAAKV,KAAK,IAElBzB,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAEhB;MACF;IAEA,KAAK;MAAU;QACb,MAAM8C,GAAA,GAAMtD,UAAA;UACNK,KAAA,GAAQJ,IAAA,CAAK,CAAC;QAEpB,CAAI,CAACqD,GAAA,IAAO,CAACjD,KAAA,MACXC,OAAA,CAAQC,KAAA,CAAM,mCAAmC,GACjD3B,OAAA,CAAQ4B,IAAA,CAAK,CAAC;QAGhB,MAAM+C,EAAA,GAAK9C,gBAAA,CAAiB;QAC5B,MAAMxD,mBAAA,CAAoBsG,EAAA,EAAID,GAAA,EAAKjD,KAAK,GACxCC,OAAA,CAAQS,IAAA,CAAK,IAAI;QACjB;MACF;IAEA;MACET,OAAA,CAAQC,KAAA,CAAM,oBAAoBR,OAAO,EAAE,GAC3CO,OAAA,CAAQS,IAAA,CAAKzC,IAAI,GACjBM,OAAA,CAAQ4B,IAAA,CAAK,CAAC;EAClB;AACF,SAASD,KAAA,EAAO;EACdD,OAAA,CAAQC,KAAA,CAAM,UAAWA,KAAA,CAAgBiD,OAAO,GAChD5E,OAAA,CAAQ4B,IAAA,CAAK,CAAC;AAChB","ignoreList":[]}
package/dist/detox.mjs CHANGED
@@ -3,7 +3,8 @@ import { DETOX_SERVER_PORT } from "./constants.mjs";
3
3
  function parseDetoxArgs(platform) {
4
4
  const defaultConfig = platform === "ios" ? "ios.sim.debug" : "android.emu.ci.debug",
5
5
  {
6
- values
6
+ values,
7
+ positionals
7
8
  } = parseArgs({
8
9
  options: {
9
10
  config: {
@@ -30,7 +31,8 @@ function parseDetoxArgs(platform) {
30
31
  type: "string",
31
32
  default: "1"
32
33
  }
33
- }
34
+ },
35
+ allowPositionals: !0
34
36
  }),
35
37
  retriesNum = Number.parseInt(values.retries, 10);
36
38
  (Number.isNaN(retriesNum) || retriesNum < 0) && (console.error("Error: retries must be a non-negative integer"), process.exit(1));
@@ -41,14 +43,15 @@ function parseDetoxArgs(platform) {
41
43
  headless: values.headless,
42
44
  recordLogs: values["record-logs"],
43
45
  retries: retriesNum,
44
- workers: workersNum
46
+ workers: workersNum,
47
+ testFiles: positionals.length > 0 ? positionals : void 0
45
48
  };
46
49
  }
47
50
  function buildDetoxArgs(options) {
48
51
  const args = ["detox", "test", "--configuration", options.config, "--record-logs", options.recordLogs, "--retries", String(options.retries),
49
52
  // force jest to exit after tests complete (prevents hanging on open handles)
50
53
  "--forceExit"];
51
- return options.headless && args.push("--headless"), options.workers && options.workers > 1 && args.push("--workers", String(options.workers)), args;
54
+ return options.headless && args.push("--headless"), options.workers && options.workers > 1 && args.push("--workers", String(options.workers)), options.testFiles && options.testFiles.length > 0 && args.push(...options.testFiles), args;
52
55
  }
53
56
  const DETOX_TIMEOUT_MS = 2700 * 1e3;
54
57
  async function resetDetoxLockFile() {
@@ -1 +1 @@
1
- {"version":3,"names":["parseArgs","DETOX_SERVER_PORT","parseDetoxArgs","platform","defaultConfig","values","options","config","type","default","process","cwd","headless","retries","workers","retriesNum","Number","parseInt","isNaN","console","error","exit","workersNum","projectRoot","recordLogs","buildDetoxArgs","args","String","push","DETOX_TIMEOUT_MS","resetDetoxLockFile","info","Bun","spawn","stdout","stderr","exited","runDetoxTests","detoxArgs","join","proc","env","timeoutPromise","Promise","resolve","setTimeout","result","race","kill","exitCode"],"sources":["../src/detox.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["parseArgs","DETOX_SERVER_PORT","parseDetoxArgs","platform","defaultConfig","values","positionals","options","config","type","default","process","cwd","headless","retries","workers","allowPositionals","retriesNum","Number","parseInt","isNaN","console","error","exit","workersNum","projectRoot","recordLogs","testFiles","length","buildDetoxArgs","args","String","push","DETOX_TIMEOUT_MS","resetDetoxLockFile","info","Bun","spawn","stdout","stderr","exited","runDetoxTests","detoxArgs","join","proc","env","timeoutPromise","Promise","resolve","setTimeout","result","race","kill","exitCode"],"sources":["../src/detox.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/index.js CHANGED
@@ -1,97 +1,11 @@
1
- import {
2
- METRO_HOST,
3
- METRO_PORT,
4
- METRO_URL,
5
- DETOX_SERVER_PORT,
6
- DEFAULT_METRO_WAIT_ATTEMPTS,
7
- DEFAULT_METRO_WAIT_INTERVAL_MS,
8
- DEFAULT_METRO_TIMEOUT_MS,
9
- DEFAULT_KV_TTL_SECONDS
10
- } from "./constants";
11
- import {
12
- generateFingerprint,
13
- generatePreFingerprintHash
14
- } from "./fingerprint";
15
- import {
16
- createCacheKey,
17
- saveFingerprintToKV,
18
- getFingerprintFromKV,
19
- extendKVTTL,
20
- saveCache,
21
- loadCache
22
- } from "./cache";
23
- import {
24
- runWithCache,
25
- setGitHubOutput,
26
- isGitHubActions,
27
- isCI
28
- } from "./runner";
29
- import {
30
- waitForMetro,
31
- prewarmBundle,
32
- startMetro,
33
- setupSignalHandlers,
34
- withMetro
35
- } from "./metro";
36
- import {
37
- parseDetoxArgs,
38
- buildDetoxArgs,
39
- runDetoxTests
40
- } from "./detox";
41
- import {
42
- waitForDevice,
43
- setupAdbReverse,
44
- setupAndroidDevice,
45
- ensureAndroidFolder
46
- } from "./android";
1
+ import { METRO_HOST, METRO_PORT, METRO_URL, DETOX_SERVER_PORT, DEFAULT_METRO_WAIT_ATTEMPTS, DEFAULT_METRO_WAIT_INTERVAL_MS, DEFAULT_METRO_TIMEOUT_MS, DEFAULT_KV_TTL_SECONDS } from "./constants.mjs";
2
+ import { generateFingerprint, generatePreFingerprintHash } from "./fingerprint.mjs";
3
+ import { createCacheKey, saveFingerprintToKV, getFingerprintFromKV, extendKVTTL, saveCache, loadCache } from "./cache.mjs";
4
+ import { runWithCache, setGitHubOutput, isGitHubActions, isCI } from "./runner.mjs";
5
+ import { waitForMetro, prewarmBundle, startMetro, setupSignalHandlers, withMetro } from "./metro.mjs";
6
+ import { parseDetoxArgs, buildDetoxArgs, runDetoxTests } from "./detox.mjs";
7
+ import { waitForDevice, setupAdbReverse, setupAndroidDevice, ensureAndroidFolder } from "./android";
47
8
  import { ensureIOSFolder, ensureIOSApp, cleanupSimulators } from "./ios";
48
- import {
49
- checkDeps,
50
- ensureIosDeps,
51
- ensureAndroidDeps,
52
- ensureMaestro,
53
- printDepsStatus
54
- } from "./deps";
55
- export {
56
- DEFAULT_KV_TTL_SECONDS,
57
- DEFAULT_METRO_TIMEOUT_MS,
58
- DEFAULT_METRO_WAIT_ATTEMPTS,
59
- DEFAULT_METRO_WAIT_INTERVAL_MS,
60
- DETOX_SERVER_PORT,
61
- METRO_HOST,
62
- METRO_PORT,
63
- METRO_URL,
64
- buildDetoxArgs,
65
- checkDeps,
66
- cleanupSimulators,
67
- createCacheKey,
68
- ensureAndroidDeps,
69
- ensureAndroidFolder,
70
- ensureIOSApp,
71
- ensureIOSFolder,
72
- ensureIosDeps,
73
- ensureMaestro,
74
- extendKVTTL,
75
- generateFingerprint,
76
- generatePreFingerprintHash,
77
- getFingerprintFromKV,
78
- isCI,
79
- isGitHubActions,
80
- loadCache,
81
- parseDetoxArgs,
82
- prewarmBundle,
83
- printDepsStatus,
84
- runDetoxTests,
85
- runWithCache,
86
- saveCache,
87
- saveFingerprintToKV,
88
- setGitHubOutput,
89
- setupAdbReverse,
90
- setupAndroidDevice,
91
- setupSignalHandlers,
92
- startMetro,
93
- waitForDevice,
94
- waitForMetro,
95
- withMetro
96
- };
9
+ import { checkDeps, ensureIosDeps, ensureAndroidDeps, ensureMaestro, printDepsStatus } from "./deps.mjs";
10
+ export { DEFAULT_KV_TTL_SECONDS, DEFAULT_METRO_TIMEOUT_MS, DEFAULT_METRO_WAIT_ATTEMPTS, DEFAULT_METRO_WAIT_INTERVAL_MS, DETOX_SERVER_PORT, METRO_HOST, METRO_PORT, METRO_URL, buildDetoxArgs, checkDeps, cleanupSimulators, createCacheKey, ensureAndroidDeps, ensureAndroidFolder, ensureIOSApp, ensureIOSFolder, ensureIosDeps, ensureMaestro, extendKVTTL, generateFingerprint, generatePreFingerprintHash, getFingerprintFromKV, isCI, isGitHubActions, loadCache, parseDetoxArgs, prewarmBundle, printDepsStatus, runDetoxTests, runWithCache, saveCache, saveFingerprintToKV, setGitHubOutput, setupAdbReverse, setupAndroidDevice, setupSignalHandlers, startMetro, waitForDevice, waitForMetro, withMetro };
97
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts"],
4
- "mappings": "AAQA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAS,iBAAiB,cAAc,yBAAyB;AAGjE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;",
5
- "names": []
6
- }
1
+ {"version":3,"names":["METRO_HOST","METRO_PORT","METRO_URL","DETOX_SERVER_PORT","DEFAULT_METRO_WAIT_ATTEMPTS","DEFAULT_METRO_WAIT_INTERVAL_MS","DEFAULT_METRO_TIMEOUT_MS","DEFAULT_KV_TTL_SECONDS","generateFingerprint","generatePreFingerprintHash","createCacheKey","saveFingerprintToKV","getFingerprintFromKV","extendKVTTL","saveCache","loadCache","runWithCache","setGitHubOutput","isGitHubActions","isCI","waitForMetro","prewarmBundle","startMetro","setupSignalHandlers","withMetro","parseDetoxArgs","buildDetoxArgs","runDetoxTests","waitForDevice","setupAdbReverse","setupAndroidDevice","ensureAndroidFolder","ensureIOSFolder","ensureIOSApp","cleanupSimulators","checkDeps","ensureIosDeps","ensureAndroidDeps","ensureMaestro","printDepsStatus"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAQA,SACEA,UAAA,EACAC,UAAA,EACAC,SAAA,EACAC,iBAAA,EACAC,2BAAA,EACAC,8BAAA,EACAC,wBAAA,EACAC,sBAAA,QAGK;AAGP,SACEC,mBAAA,EACAC,0BAAA,QAGK;AAGP,SACEC,cAAA,EACAC,mBAAA,EACAC,oBAAA,EACAC,WAAA,EACAC,SAAA,EACAC,SAAA,QAIK;AAGP,SACEC,YAAA,EACAC,eAAA,EACAC,eAAA,EACAC,IAAA,QAGK;AAGP,SACEC,YAAA,EACAC,aAAA,EACAC,UAAA,EACAC,mBAAA,EACAC,SAAA,QAGK;AAGP,SACEC,cAAA,EACAC,cAAA,EACAC,aAAA,QAEK;AAGP,SACEC,aAAA,EACAC,eAAA,EACAC,kBAAA,EACAC,mBAAA,QACK;AAGP,SAASC,eAAA,EAAiBC,YAAA,EAAcC,iBAAA,QAAyB;AAGjE,SACEC,SAAA,EACAC,aAAA,EACAC,iBAAA,EACAC,aAAA,EACAC,eAAA,QAEK","ignoreList":[]}
package/dist/metro.mjs CHANGED
@@ -1,4 +1,5 @@
1
- import { METRO_URL, DEFAULT_METRO_WAIT_ATTEMPTS, DEFAULT_METRO_WAIT_INTERVAL_MS } from "./constants.mjs";
1
+ import { execSync } from "node:child_process";
2
+ import { METRO_URL, METRO_PORT, DEFAULT_METRO_WAIT_ATTEMPTS, DEFAULT_METRO_WAIT_INTERVAL_MS } from "./constants.mjs";
2
3
  async function waitForMetro(options) {
3
4
  const {
4
5
  platform,
@@ -34,12 +35,24 @@ async function prewarmBundle(platform) {
34
35
  console.info("Bundle pre-warm completed (with error, continuing)");
35
36
  }
36
37
  }
38
+ function projectUsesDevClient() {
39
+ try {
40
+ const pkg = JSON.parse(require("fs").readFileSync("package.json", "utf-8"));
41
+ return !!({
42
+ ...pkg.dependencies,
43
+ ...pkg.devDependencies
44
+ }["expo-dev-client"] || typeof pkg.scripts?.start == "string" && pkg.scripts.start.includes("--dev-client"));
45
+ } catch {
46
+ return !1;
47
+ }
48
+ }
37
49
  function startMetro() {
38
50
  console.info(`
39
51
  --- Starting Metro bundler ---`);
40
52
  const isCI = !!process.env.CI,
41
- args = ["bun", "expo", "start", "--dev-client", "--offline"];
42
- isCI && (args.push("--clear"), console.info("CI detected: clearing Metro cache"));
53
+ useDevClient = projectUsesDevClient(),
54
+ args = ["bun", "expo", "start", "--offline"];
55
+ useDevClient && (args.splice(3, 0, "--dev-client"), console.info("Dev client detected")), isCI && (args.push("--clear"), console.info("CI detected: clearing Metro cache"));
43
56
  const proc = Bun.spawn(args, {
44
57
  env: {
45
58
  ...process.env,
@@ -80,9 +93,18 @@ async function isMetroRunning(platform) {
80
93
  return !1;
81
94
  }
82
95
  }
96
+ function killPortProcess() {
97
+ try {
98
+ const pid = execSync(`lsof -ti tcp:${METRO_PORT} -sTCP:LISTEN`, {
99
+ encoding: "utf-8"
100
+ }).trim();
101
+ pid && (console.info(`Killing process ${pid} on port ${METRO_PORT}...`), process.kill(Number(pid), "SIGTERM"));
102
+ } catch {}
103
+ }
83
104
  async function withMetro(platform, fn) {
84
105
  if (await isMetroRunning(platform)) return console.info(`
85
106
  --- Metro already running, reusing existing instance ---`), await prewarmBundle(platform), await fn();
107
+ killPortProcess();
86
108
  const metro = startMetro();
87
109
  setupSignalHandlers(metro);
88
110
  try {
@@ -1 +1 @@
1
- {"version":3,"names":["METRO_URL","DEFAULT_METRO_WAIT_ATTEMPTS","DEFAULT_METRO_WAIT_INTERVAL_MS","waitForMetro","options","platform","maxAttempts","intervalMs","console","info","i","fetch","headers","ok","Bun","sleep","prewarmBundle","response","bundleUrl","json","launchAsset","url","startMetro","isCI","process","env","CI","args","push","proc","spawn","EXPO_NO_TELEMETRY","stdout","stderr","kill","pid","String","exited","setupSignalHandlers","metro","cleanup","signal","exit","on","isMetroRunning","withMetro","fn","Error"],"sources":["../src/metro.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["execSync","METRO_URL","METRO_PORT","DEFAULT_METRO_WAIT_ATTEMPTS","DEFAULT_METRO_WAIT_INTERVAL_MS","waitForMetro","options","platform","maxAttempts","intervalMs","console","info","i","fetch","headers","ok","Bun","sleep","prewarmBundle","response","bundleUrl","json","launchAsset","url","projectUsesDevClient","pkg","JSON","parse","require","readFileSync","dependencies","devDependencies","scripts","start","includes","startMetro","isCI","process","env","CI","useDevClient","args","splice","push","proc","spawn","EXPO_NO_TELEMETRY","stdout","stderr","kill","pid","String","exited","setupSignalHandlers","metro","cleanup","signal","exit","on","isMetroRunning","killPortProcess","encoding","trim","Number","withMetro","fn","Error"],"sources":["../src/metro.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/native-ci",
3
- "version": "2.0.0-rc.3",
3
+ "version": "2.0.0-rc.30",
4
4
  "description": "Native CI/CD helpers for React Native apps with Expo - fingerprinting, caching, and build optimization",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,6 +24,7 @@
24
24
  "./package.json": "./package.json",
25
25
  ".": {
26
26
  "types": "./types/index.d.ts",
27
+ "browser": "./dist/index.mjs",
27
28
  "module": "./dist/index.mjs",
28
29
  "import": "./dist/index.mjs"
29
30
  }
@@ -38,10 +39,10 @@
38
39
  "clean:build": "tamagui-build clean:build"
39
40
  },
40
41
  "dependencies": {
41
- "@expo/fingerprint": "^0.15.3"
42
+ "@expo/fingerprint": "~0.16.6"
42
43
  },
43
44
  "devDependencies": {
44
- "@tamagui/build": "2.0.0-rc.3",
45
+ "@tamagui/build": "2.0.0-rc.30",
45
46
  "@types/bun": "^1.1.0",
46
47
  "@types/node": "^22.1.0"
47
48
  },
package/src/cli.ts CHANGED
@@ -26,7 +26,14 @@ import {
26
26
  } from './deps'
27
27
  import { withMetro } from './metro'
28
28
  import { parseDetoxArgs, runDetoxTests } from './detox'
29
- import { ensureIOSFolder, ensureIOSApp } from './ios'
29
+ import {
30
+ ensureIOSFolder,
31
+ ensureIOSApp,
32
+ ensureBootedSimulator,
33
+ ensureAppInstalled,
34
+ getBootedSimulatorUDID,
35
+ getMaestroBundleId,
36
+ } from './ios'
30
37
  import { setupAndroidDevice, ensureAndroidFolder } from './android'
31
38
  import type { Platform } from './constants'
32
39
 
@@ -196,6 +203,8 @@ try {
196
203
  const platform = subcommand || 'ios'
197
204
 
198
205
  if (platform === 'ios') {
206
+ ensureBootedSimulator()
207
+
199
208
  // Ensure iOS dependencies
200
209
  await ensureIosDeps()
201
210
 
@@ -244,6 +253,8 @@ try {
244
253
  })
245
254
  process.exit(exitCode)
246
255
  } else if (platform === 'maestro') {
256
+ ensureBootedSimulator()
257
+
247
258
  // Ensure Maestro is installed
248
259
  await ensureMaestro()
249
260
 
@@ -254,17 +265,28 @@ try {
254
265
 
255
266
  process.chdir(options.projectRoot)
256
267
 
268
+ // resolve the target simulator UDID once and use it consistently
269
+ const udid = getBootedSimulatorUDID()!
270
+
271
+ // ensure the app is built and installed on the target simulator
272
+ const bundleId = getMaestroBundleId(options.projectRoot)
273
+ await ensureAppInstalled({ projectRoot: options.projectRoot, bundleId, udid })
274
+
257
275
  // Run Maestro with Metro for development builds
258
276
  const exitCode = await withMetro('ios', async () => {
259
277
  const { $ } = await import('bun')
260
278
  // Flows are at ./flows/ in kitchen-sink, not .maestro/flows/
261
279
  const flowArg = flow ? `./flows/${flow}` : './flows'
280
+ const udidArgs = ['--udid', udid]
281
+ const debugDir = `${options.projectRoot}/.maestro-debug`
262
282
  const result =
263
- await $`maestro test ${flowArg} --exclude-tags=util --no-ansi`.nothrow()
283
+ await $`maestro test ${flowArg} --exclude-tags=util --no-ansi --debug-output=${debugDir} ${udidArgs}`.nothrow()
264
284
  return result.exitCode
265
285
  })
266
286
  process.exit(exitCode)
267
287
  } else if (platform === 'all') {
288
+ ensureBootedSimulator()
289
+
268
290
  console.info('=== Running All Native Tests ===\n')
269
291
 
270
292
  // Run iOS tests
package/src/detox.ts CHANGED
@@ -21,6 +21,8 @@ export interface DetoxRunnerOptions {
21
21
  headless?: boolean
22
22
  /** Number of parallel workers (default: 1) */
23
23
  workers?: number
24
+ /** Specific test files to run (passed as positional args to detox) */
25
+ testFiles?: string[]
24
26
  }
25
27
 
26
28
  /**
@@ -29,7 +31,7 @@ export interface DetoxRunnerOptions {
29
31
  export function parseDetoxArgs(platform: Platform) {
30
32
  const defaultConfig = platform === 'ios' ? 'ios.sim.debug' : 'android.emu.ci.debug'
31
33
 
32
- const { values } = parseArgs({
34
+ const { values, positionals } = parseArgs({
33
35
  options: {
34
36
  config: { type: 'string', default: defaultConfig },
35
37
  'project-root': { type: 'string', default: process.cwd() },
@@ -38,6 +40,7 @@ export function parseDetoxArgs(platform: Platform) {
38
40
  retries: { type: 'string', default: '0' },
39
41
  workers: { type: 'string', default: '1' },
40
42
  },
43
+ allowPositionals: true,
41
44
  })
42
45
 
43
46
  // Validate and convert retries to number
@@ -61,6 +64,7 @@ export function parseDetoxArgs(platform: Platform) {
61
64
  recordLogs: values['record-logs']!,
62
65
  retries: retriesNum,
63
66
  workers: workersNum,
67
+ testFiles: positionals.length > 0 ? positionals : undefined,
64
68
  }
65
69
  }
66
70
 
@@ -90,6 +94,11 @@ export function buildDetoxArgs(options: DetoxRunnerOptions): string[] {
90
94
  args.push('--workers', String(options.workers))
91
95
  }
92
96
 
97
+ // append specific test files if provided (for CI sharding)
98
+ if (options.testFiles && options.testFiles.length > 0) {
99
+ args.push(...options.testFiles)
100
+ }
101
+
93
102
  return args
94
103
  }
95
104