expo-devbox 0.2.1 → 0.2.2
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/README.md +5 -6
- package/package.json +1 -1
- package/src/cli.ts +6 -4
- package/src/init.ts +1 -1
package/README.md
CHANGED
|
@@ -70,14 +70,14 @@ Several sessions in one directory help when two agents share a checkout. Each se
|
|
|
70
70
|
|
|
71
71
|
## On the worker
|
|
72
72
|
|
|
73
|
-
After each change, run `expo-devbox sync`, then
|
|
73
|
+
After each change, run `expo-devbox sync`, then the commands the change needs with `expo-devbox ssh '<command>'`. A JavaScript change needs none: Metro sends it to the running app. A native change needs a build, then install and launch. The rest are for checking the result. The `DEVBOX_*` variables are set in every SSH session. After the worker's first build, an incremental build takes a few seconds.
|
|
74
74
|
|
|
75
75
|
```sh
|
|
76
|
-
# Build. Prints errors with file and line, then ** BUILD SUCCEEDED ** or ** BUILD FAILED **, and exits
|
|
76
|
+
# Build, after a native change. Prints errors with file and line, then ** BUILD SUCCEEDED ** or ** BUILD FAILED **, and exits
|
|
77
77
|
# non-zero on failure. The full log is ~/.devbox/build.log.
|
|
78
78
|
set -o pipefail; xcodebuild -workspace "$DEVBOX_WORKSPACE" -scheme "$DEVBOX_SCHEME" -configuration Debug -destination "id=$DEVBOX_SIMULATOR" -derivedDataPath "$DEVBOX_DERIVED_DATA" build 2>&1 | tee ~/.devbox/build.log | grep -E ": (fatal )?error:|\*\* BUILD" | sort -u
|
|
79
79
|
|
|
80
|
-
#
|
|
80
|
+
# After a build, install and launch the app on the simulator.
|
|
81
81
|
xcrun simctl install booted "$DEVBOX_APP" && xcrun simctl launch --terminate-running-process booted "$DEVBOX_BUNDLE_ID"
|
|
82
82
|
|
|
83
83
|
# JavaScript console output and errors (Metro).
|
|
@@ -132,7 +132,7 @@ When the user asks for it:
|
|
|
132
132
|
|
|
133
133
|
1. Run `bunx expo-devbox help` and follow its "On the worker" section. It has the command for each step: build, install and launch, logs, crash reports and screenshots.
|
|
134
134
|
2. Start a session with `bunx expo-devbox start`. It returns when the worker is ready, and EAS macOS minutes are billed until the session ends.
|
|
135
|
-
3. After each change, run `bunx expo-devbox sync`, then the commands from the help with `bunx expo-devbox ssh '<command>'`.
|
|
135
|
+
3. After each change, run `bunx expo-devbox sync`, then the commands from the help that the change needs, with `bunx expo-devbox ssh '<command>'`.
|
|
136
136
|
4. Commands use the session you started last in this directory. If another agent works in the same directory, pass your session's ID, which `start` prints, to every command: `bunx expo-devbox ssh --session <id> '<command>'`.
|
|
137
137
|
5. When the user is done with the devbox, run `bunx expo-devbox stop`.
|
|
138
138
|
```
|
|
@@ -153,8 +153,7 @@ The workflow runs one custom job on `macos-large` in the `development` environme
|
|
|
153
153
|
|
|
154
154
|
`sync` sends what git would track. Patterns from `.gitignore` are excluded, so local secrets such as `.env.local` stay local and files that the worker generated are not deleted. `.gitignore` lines that start with `!` are not supported.
|
|
155
155
|
|
|
156
|
-
|
|
157
|
-
> SSH support for EAS Workflows is coming soon (`eas workflow:run --ssh` and `eas workflow:ssh`). It will cover about half of what this tool does: the SSH server, the Cloudflare tunnel, finding the worker, and ending idle sessions (steps 1 and 2, and the idle shutdown in step 4). The other half stays: preparing the worker, syncing your files safely, the variables and commands for building and running the app, and the instructions for coding agents. When workflow SSH ships, `expo-devbox` will use it.
|
|
156
|
+
**Coming soon:** SSH support for EAS Workflows (`eas workflow:run --ssh` and `eas workflow:ssh`). It will cover about half of what this tool does: the SSH server, the Cloudflare tunnel, finding the worker, and ending idle sessions (steps 1 and 2, and the idle shutdown in step 4). The other half stays: preparing the worker, syncing your files safely, the variables and commands for building and running the app, and the instructions for coding agents. When workflow SSH ships, `expo-devbox` will use it.
|
|
158
157
|
|
|
159
158
|
</details>
|
|
160
159
|
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -27,14 +27,16 @@ Sessions:
|
|
|
27
27
|
EXPO_DEVBOX_SESSION=<id>. Any unique prefix of an ID works; expo-devbox sessions lists them.
|
|
28
28
|
|
|
29
29
|
On the worker:
|
|
30
|
-
After each change, run expo-devbox sync, then the commands below
|
|
30
|
+
After each change, run expo-devbox sync, then the commands below that the change needs with
|
|
31
|
+
expo-devbox ssh '<command>'. A JavaScript change needs none: Metro sends it to the running app.
|
|
32
|
+
A native change needs a build, then install and launch. The rest are for checking the result.
|
|
31
33
|
The DEVBOX_* variables are set in every SSH session.
|
|
32
34
|
|
|
33
|
-
Build. Prints errors with file and line, then ** BUILD SUCCEEDED ** or
|
|
34
|
-
The full log is ~/.devbox/build.log.
|
|
35
|
+
Build, after a native change. Prints errors with file and line, then ** BUILD SUCCEEDED ** or
|
|
36
|
+
** BUILD FAILED **. The full log is ~/.devbox/build.log.
|
|
35
37
|
set -o pipefail; xcodebuild -workspace "$DEVBOX_WORKSPACE" -scheme "$DEVBOX_SCHEME" -configuration Debug -destination "id=$DEVBOX_SIMULATOR" -derivedDataPath "$DEVBOX_DERIVED_DATA" build 2>&1 | tee ~/.devbox/build.log | grep -E ": (fatal )?error:|\\*\\* BUILD" | sort -u
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
After a build, install and launch the app on the simulator:
|
|
38
40
|
xcrun simctl install booted "$DEVBOX_APP" && xcrun simctl launch --terminate-running-process booted "$DEVBOX_BUNDLE_ID"
|
|
39
41
|
|
|
40
42
|
JavaScript console output and errors (Metro):
|
package/src/init.ts
CHANGED
|
@@ -14,7 +14,7 @@ When the user asks for it:
|
|
|
14
14
|
|
|
15
15
|
1. Run \`bunx expo-devbox help\` and follow its "On the worker" section. It has the command for each step: build, install and launch, logs, crash reports and screenshots.
|
|
16
16
|
2. Start a session with \`bunx expo-devbox start\`. It returns when the worker is ready, and EAS macOS minutes are billed until the session ends.
|
|
17
|
-
3. After each change, run \`bunx expo-devbox sync\`, then the commands from the help with \`bunx expo-devbox ssh '<command>'\`.
|
|
17
|
+
3. After each change, run \`bunx expo-devbox sync\`, then the commands from the help that the change needs, with \`bunx expo-devbox ssh '<command>'\`.
|
|
18
18
|
4. Commands use the session you started last in this directory. If another agent works in the same directory, pass your session's ID, which \`start\` prints, to every command: \`bunx expo-devbox ssh --session <id> '<command>'\`.
|
|
19
19
|
5. When the user is done with the devbox, run \`bunx expo-devbox stop\`.
|
|
20
20
|
`;
|