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

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/metro.js CHANGED
@@ -1,5 +1,7 @@
1
+ import { execSync } from "node:child_process";
1
2
  import {
2
3
  METRO_URL,
4
+ METRO_PORT,
3
5
  DEFAULT_METRO_WAIT_ATTEMPTS,
4
6
  DEFAULT_METRO_WAIT_INTERVAL_MS
5
7
  } from "./constants";
@@ -78,10 +80,20 @@ async function isMetroRunning(platform) {
78
80
  return !1;
79
81
  }
80
82
  }
83
+ function killPortProcess() {
84
+ try {
85
+ const pid = execSync(`lsof -ti tcp:${METRO_PORT} -sTCP:LISTEN`, {
86
+ encoding: "utf-8"
87
+ }).trim();
88
+ pid && (console.info(`Killing process ${pid} on port ${METRO_PORT}...`), process.kill(Number(pid), "SIGTERM"));
89
+ } catch {
90
+ }
91
+ }
81
92
  async function withMetro(platform, fn) {
82
93
  if (await isMetroRunning(platform))
83
94
  return console.info(`
84
95
  --- Metro already running, reusing existing instance ---`), await prewarmBundle(platform), await fn();
96
+ killPortProcess();
85
97
  const metro = startMetro();
86
98
  setupSignalHandlers(metro);
87
99
  try {
package/dist/metro.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/metro.ts"],
4
- "mappings": "AAQA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAuBP,eAAsB,aAAa,SAAyC;AAC1E,QAAM;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,IACd,aAAa;AAAA,EACf,IAAI;AAEJ,UAAQ,KAAK,+BAA+B;AAE5C,WAAS,IAAI,GAAG,KAAK,aAAa,KAAK;AACrC,QAAI;AAIF,WAHiB,MAAM,MAAM,GAAG,SAAS,KAAK;AAAA,QAC5C,SAAS,EAAE,iBAAiB,SAAS;AAAA,MACvC,CAAC,GACY;AACX,uBAAQ,KAAK,sBAAsB,GAC5B;AAAA,IAEX,QAAQ;AAAA,IAER;AACA,YAAQ,KAAK,yBAAyB,CAAC,IAAI,WAAW,GAAG,GACzD,MAAM,IAAI,MAAM,UAAU;AAAA,EAC5B;AAEA,SAAO;AACT;AAMA,eAAsB,cAAc,UAAmC;AACrE,UAAQ,KAAK,uBAAuB;AAEpC,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,GAAG,SAAS,KAAK;AAAA,MAC5C,SAAS,EAAE,iBAAiB,SAAS;AAAA,IACvC,CAAC;AAED,QAAI,SAAS,IAAI;AAEf,YAAM,aADY,MAAM,SAAS,KAAK,IACV,aAAa;AAEzC,MAAI,aACF,QAAQ,KAAK,yBAAyB,SAAS,EAAE,GACjD,MAAM,MAAM,SAAS,GACrB,QAAQ,KAAK,oBAAoB,KAEjC,QAAQ,KAAK,oDAAoD;AAAA,IAErE;AAAA,EACF,QAAgB;AAEd,YAAQ,KAAK,oDAAoD;AAAA,EACnE;AACF;AAOO,SAAS,aAA2B;AACzC,UAAQ,KAAK;AAAA,+BAAkC;AAG/C,QAAM,OAAO,CAAC,CAAC,QAAQ,IAAI,IACrB,OAAO,CAAC,OAAO,QAAQ,SAAS,gBAAgB,WAAW;AACjE,EAAI,SACF,KAAK,KAAK,SAAS,GACnB,QAAQ,KAAK,mCAAmC;AAGlD,QAAM,OAAO,IAAI,MAAM,MAAM;AAAA,IAC3B,KAAK,EAAE,GAAG,QAAQ,KAAK,mBAAmB,OAAO;AAAA,IACjD,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA,MAAM,YAAY;AAGhB,YAAM,MAAM,KAAK;AACjB,UAAI;AACF,YAAI;AAEF,gBAAM,IAAI,MAAM,CAAC,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG;AAAA,YAC5C,QAAQ;AAAA,YACR,QAAQ;AAAA,UACV,CAAC,EAAE;AAAA,QACL,QAAQ;AAAA,QAER;AAEF,WAAK,KAAK,SAAS,GACnB,QAAQ,KAAK,eAAe;AAAA,IAC9B;AAAA,EACF;AACF;AAMO,SAAS,oBAAoB,OAA2B;AAC7D,QAAM,UAAU,OAAO,WAAmB;AACxC,YAAQ,KAAK;AAAA,WAAc,MAAM,kBAAkB,GACnD,MAAM,MAAM,KAAK,GACjB,QAAQ,KAAK,WAAW,WAAW,MAAM,GAAG;AAAA,EAC9C;AAEA,UAAQ,GAAG,UAAU,MAAM,QAAQ,QAAQ,CAAC,GAC5C,QAAQ,GAAG,WAAW,MAAM,QAAQ,SAAS,CAAC;AAChD;AAKA,eAAe,eAAe,UAAsC;AAClE,MAAI;AAIF,YAHiB,MAAM,MAAM,GAAG,SAAS,KAAK;AAAA,MAC5C,SAAS,EAAE,iBAAiB,SAAS;AAAA,IACvC,CAAC,GACe;AAAA,EAClB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAUA,eAAsB,UAAa,UAAoB,IAAkC;AAIvF,MAFuB,MAAM,eAAe,QAAQ;AAGlD,mBAAQ,KAAK;AAAA,yDAA4D,GACzE,MAAM,cAAc,QAAQ,GACrB,MAAM,GAAG;AAIlB,QAAM,QAAQ,WAAW;AACzB,sBAAoB,KAAK;AAEzB,MAAI;AAEF,QAAI,CADe,MAAM,aAAa,EAAE,SAAS,CAAC;AAEhD,YAAM,IAAI,MAAM,sCAAsC;AAGxD,iBAAM,cAAc,QAAQ,GAErB,MAAM,GAAG;AAAA,EAClB,UAAE;AACA,UAAM,MAAM,KAAK;AAAA,EACnB;AACF;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
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,
@@ -80,9 +81,18 @@ async function isMetroRunning(platform) {
80
81
  return !1;
81
82
  }
82
83
  }
84
+ function killPortProcess() {
85
+ try {
86
+ const pid = execSync(`lsof -ti tcp:${METRO_PORT} -sTCP:LISTEN`, {
87
+ encoding: "utf-8"
88
+ }).trim();
89
+ pid && (console.info(`Killing process ${pid} on port ${METRO_PORT}...`), process.kill(Number(pid), "SIGTERM"));
90
+ } catch {}
91
+ }
83
92
  async function withMetro(platform, fn) {
84
93
  if (await isMetroRunning(platform)) return console.info(`
85
94
  --- Metro already running, reusing existing instance ---`), await prewarmBundle(platform), await fn();
95
+ killPortProcess();
86
96
  const metro = startMetro();
87
97
  setupSignalHandlers(metro);
88
98
  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","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","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.5",
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": {
@@ -41,7 +41,7 @@
41
41
  "@expo/fingerprint": "^0.15.3"
42
42
  },
43
43
  "devDependencies": {
44
- "@tamagui/build": "2.0.0-rc.3",
44
+ "@tamagui/build": "2.0.0-rc.5",
45
45
  "@types/bun": "^1.1.0",
46
46
  "@types/node": "^22.1.0"
47
47
  },
package/src/ios.ts CHANGED
@@ -107,6 +107,7 @@ function saveFingerprintCache(projectRoot: string, cache: FingerprintCache): voi
107
107
  *
108
108
  * IMPORTANT: Fingerprint only changes when NATIVE dependencies change
109
109
  * (Podfile, native modules, etc). JS-only changes don't require rebuild.
110
+ * Set SKIP_IOS_REBUILD=1 to skip rebuild even when fingerprint changes.
110
111
  */
111
112
  export async function ensureIOSApp(config: string = 'ios.sim.debug'): Promise<void> {
112
113
  // On CI, the app is built separately - don't build here
@@ -153,29 +154,24 @@ export async function ensureIOSApp(config: string = 'ios.sim.debug'): Promise<vo
153
154
  return
154
155
  }
155
156
 
156
- // Fingerprint changed - but let user decide if they want to rebuild
157
- // Many fingerprint changes are false positives (timestamp changes, etc)
157
+ // fingerprint changed - rebuild by default since native deps likely changed
158
158
  if (cache?.fingerprint) {
159
159
  console.info(`\n--- iOS fingerprint changed ---`)
160
160
  console.info(`Previous: ${cache.fingerprint.slice(0, 16)}...`)
161
161
  console.info(`Current: ${currentFingerprint.slice(0, 16)}...`)
162
- console.info(`App exists at ${appPath}`)
163
162
 
164
- // Check if FORCE_IOS_REBUILD is set
165
- if (process.env.FORCE_IOS_REBUILD) {
166
- console.info('FORCE_IOS_REBUILD set, rebuilding...')
167
- await buildIOSApp(config, projectRoot, appPath, currentFingerprint)
163
+ if (process.env.SKIP_IOS_REBUILD) {
164
+ console.info('SKIP_IOS_REBUILD set, using existing app')
165
+ saveFingerprintCache(projectRoot, {
166
+ fingerprint: currentFingerprint,
167
+ timestamp: new Date().toISOString(),
168
+ appPath,
169
+ })
168
170
  return
169
171
  }
170
172
 
171
- // Otherwise use existing app but update fingerprint cache
172
- // This avoids unnecessary rebuilds from timestamp/metadata changes
173
- console.info('Using existing app (set FORCE_IOS_REBUILD=1 to force rebuild)')
174
- saveFingerprintCache(projectRoot, {
175
- fingerprint: currentFingerprint,
176
- timestamp: new Date().toISOString(),
177
- appPath,
178
- })
173
+ console.info('Native dependencies changed, rebuilding...')
174
+ await buildIOSApp(config, projectRoot, appPath, currentFingerprint)
179
175
  return
180
176
  }
181
177
 
package/src/metro.ts CHANGED
@@ -6,8 +6,10 @@
6
6
  */
7
7
 
8
8
  import type { Subprocess } from 'bun'
9
+ import { execSync } from 'node:child_process'
9
10
  import {
10
11
  METRO_URL,
12
+ METRO_PORT,
11
13
  DEFAULT_METRO_WAIT_ATTEMPTS,
12
14
  DEFAULT_METRO_WAIT_INTERVAL_MS,
13
15
  type Platform,
@@ -167,6 +169,24 @@ async function isMetroRunning(platform: Platform): Promise<boolean> {
167
169
  }
168
170
  }
169
171
 
172
+ /**
173
+ * Kill whatever process is listening on the Metro port.
174
+ * Prevents conflicts with other projects' Metro instances (or anything else on 8081).
175
+ */
176
+ function killPortProcess(): void {
177
+ try {
178
+ const pid = execSync(`lsof -ti tcp:${METRO_PORT} -sTCP:LISTEN`, {
179
+ encoding: 'utf-8',
180
+ }).trim()
181
+ if (pid) {
182
+ console.info(`Killing process ${pid} on port ${METRO_PORT}...`)
183
+ process.kill(Number(pid), 'SIGTERM')
184
+ }
185
+ } catch {
186
+ // nothing listening, or lsof not available
187
+ }
188
+ }
189
+
170
190
  /**
171
191
  * Run a function with Metro bundler, ensuring proper cleanup.
172
192
  * This is a convenience wrapper that handles starting Metro, waiting for it,
@@ -185,7 +205,9 @@ export async function withMetro<T>(platform: Platform, fn: () => Promise<T>): Pr
185
205
  return await fn()
186
206
  }
187
207
 
188
- // Start Metro ourselves
208
+ // kill anything on the port before starting (e.g. another project's Metro)
209
+ killPortProcess()
210
+
189
211
  const metro = startMetro()
190
212
  setupSignalHandlers(metro)
191
213
 
package/types/ios.d.ts CHANGED
@@ -29,6 +29,7 @@ export declare function ensureIOSFolder(): Promise<void>;
29
29
  *
30
30
  * IMPORTANT: Fingerprint only changes when NATIVE dependencies change
31
31
  * (Podfile, native modules, etc). JS-only changes don't require rebuild.
32
+ * Set SKIP_IOS_REBUILD=1 to skip rebuild even when fingerprint changes.
32
33
  */
33
34
  export declare function ensureIOSApp(config?: string): Promise<void>;
34
35
  //# sourceMappingURL=ios.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../src/ios.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBrD;AAkCD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,MAAM,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ElF"}
1
+ {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../src/ios.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBrD;AAkCD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,MAAM,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyElF"}
@@ -1 +1 @@
1
- {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../src/metro.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AACrC,OAAO,EAIL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,QAAQ,EAAE,QAAQ,CAAA;IAClB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,IAAI,EAAE,UAAU,CAAA;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B1E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAsCzC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAS7D;AAgBD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA0BvF"}
1
+ {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../src/metro.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,EAKL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,QAAQ,EAAE,QAAQ,CAAA;IAClB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,IAAI,EAAE,UAAU,CAAA;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B1E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAsCzC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAS7D;AAkCD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA4BvF"}