|
5 | 5 | "version": "latest", |
6 | 6 | "platforms": ["x86_64-darwin", "aarch64-darwin"] |
7 | 7 | }, |
| 8 | + "nodejs": "22", |
8 | 9 | "yarn-berry": "latest", |
| 10 | + "jq": "latest", |
9 | 11 | "treefmt": "latest", |
10 | 12 | "nixfmt": "latest", |
11 | | - "shfmt": "latest", |
12 | | - "jdk17": "latest", |
13 | | - "gradle": "latest", |
14 | | - "jq": "latest", |
15 | | - "netcat": "latest", |
16 | | - "path:./nix#android-sdk": "" |
| 13 | + "shfmt": "latest" |
17 | 14 | }, |
18 | 15 | "shell": { |
19 | 16 | "init_hook": [ |
20 | | - "echo 'Welcome to analytics-react-native devbox!' > /dev/null", |
21 | | - ". $DEVBOX_PROJECT_ROOT/scripts/shared/common.sh", |
22 | | - "if [ \"$(uname -s)\" = \"Darwin\" ]; then . $DEVBOX_PROJECT_ROOT/scripts/ios/env.sh; fi", |
23 | | - ". $DEVBOX_PROJECT_ROOT/scripts/android/env.sh", |
24 | | - "echo 'Android SDK env configured (details: wiki/devbox.md#devbox-android).'" |
| 17 | + "export PROJECT_ROOT=\"$(git rev-parse --show-toplevel 2>/dev/null || echo $DEVBOX_PROJECT_ROOT)\"", |
| 18 | + "export PATH=\"$PROJECT_ROOT/node_modules/.bin:$PATH\"", |
| 19 | + "if [ ! -d \"$PROJECT_ROOT/node_modules\" ]; then echo 'Running yarn install...'; yarn install; fi", |
| 20 | + "if [ ! -f \"$PROJECT_ROOT/packages/core/src/info.ts\" ]; then yarn core prebuild; fi", |
| 21 | + "if [ ! -d \"$PROJECT_ROOT/.husky/_\" ]; then yarn husky install; fi" |
25 | 22 | ], |
26 | 23 | "scripts": { |
27 | | - "clean": [ |
28 | | - "rm -rf $DEVBOX_PROJECT_ROOT/examples/E2E/ios/Podfile.lock", |
29 | | - "rm -rf $DEVBOX_PROJECT_ROOT/examples/E2E/ios/Pods", |
30 | | - "cd $DEVBOX_PROJECT_DIR/examples/E2E/android && gradle clean", |
31 | | - "yarn cache clean", |
32 | | - "find $DEVBOX_PROJECT_DIR -type d -name node_modules -exec rmdir {} \\;" |
33 | | - ], |
34 | | - "build": ["bash $SCRIPTS_DIR/build.sh"], |
35 | | - "format": ["treefmt"], |
36 | | - "lint": ["treefmt --fail-on-change"], |
37 | | - "test-android": ["bash $SCRIPTS_DIR/android/test.sh"], |
38 | | - "test-ios": ["bash $SCRIPTS_DIR/ios/test.sh"], |
39 | | - "act-ci": [ |
40 | | - "bash $SCRIPTS_DIR/act-ci.sh --platform ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-24.04" |
41 | | - ], |
42 | | - "setup-android": ["bash $SCRIPTS_DIR/android/setup.sh"], |
43 | | - "setup-ios": ["bash $SCRIPTS_DIR/ios/setup.sh"], |
44 | | - "start-emulator": ["bash $SCRIPTS_DIR/android/manager.sh start"], |
45 | | - "start-ios": ["bash $SCRIPTS_DIR/ios/manager.sh start"], |
46 | | - "start-android-minsdk": ["bash $SCRIPTS_DIR/android/manager.sh start"], |
47 | | - "start-android-latest": [ |
48 | | - "AVD_FLAVOR=latest bash $SCRIPTS_DIR/android/manager.sh start" |
49 | | - ], |
50 | | - "start-android": ["bash $SCRIPTS_DIR/android/manager.sh start"], |
| 24 | + "ci:install": ["yarn install --immutable"], |
| 25 | + "ci:commitlint": ["bash -c 'echo \"$PR_TITLE\" | yarn commitlint'"], |
| 26 | + "build": ["yarn build"], |
| 27 | + "test": ["yarn test"], |
| 28 | + "typecheck": ["yarn typecheck"], |
| 29 | + "lint": ["yarn lint"], |
| 30 | + "format": ["yarn format"], |
| 31 | + "format-check": ["yarn format:check"], |
| 32 | + "clean": ["yarn clean"], |
| 33 | + "release": ["yarn install --immutable", "yarn build", "yarn release"], |
| 34 | + "release-dry-run": [ |
| 35 | + "yarn install --immutable", |
| 36 | + "yarn build", |
| 37 | + "yarn multi-semantic-release --dry-run" |
| 38 | + ], |
| 39 | + "sync-versions": ["bash $PROJECT_ROOT/sync-versions.sh"], |
51 | 40 | "update-apps": [ |
52 | 41 | "yarn install --no-immutable", |
53 | | - "yarn e2e install --no-immutable", |
54 | 42 | "yarn example install --no-immutable" |
55 | | - ], |
56 | | - "update-shells": [ |
57 | | - "devbox update", |
58 | | - "devbox update --config=shells/devbox-fast.json", |
59 | | - "devbox update --config=shells/devbox-android.json", |
60 | | - "devbox update --config=shells/devbox-ios.json" |
61 | | - ], |
62 | | - "reset-android": [ |
63 | | - "rm -rf ~/.android/avd", |
64 | | - "rm -f ~/.android/adbkey*", |
65 | | - "echo \"AVDs and adb keys removed. Recreate via devbox run start-android* as needed.\"" |
66 | | - ], |
67 | | - "reset-ios": [ |
68 | | - "xcrun simctl shutdown all || true", |
69 | | - "xcrun simctl erase all || true", |
70 | | - "xcrun simctl delete all || true", |
71 | | - "xcrun simctl delete unavailable || true", |
72 | | - "killall -9 com.apple.CoreSimulatorService 2>/dev/null || true", |
73 | | - "echo \"Simulators reset via simctl. Recreate via devbox run start-ios.\"" |
74 | | - ], |
75 | | - "stop-android": [ |
76 | | - "if command -v adb >/dev/null 2>&1; then", |
77 | | - " devices=$(adb devices -l 2>/dev/null | tail -n +2 | awk '{print $1}' | tr '\\n' ' ');", |
78 | | - " if [[ -n \"$devices\" ]]; then", |
79 | | - " echo \"Stopping Android emulators: $devices\";", |
80 | | - " for d in $devices; do adb -s \"$d\" emu kill >/dev/null 2>&1 || true; done;", |
81 | | - " else", |
82 | | - " echo \"No Android emulators detected via adb.\";", |
83 | | - " fi;", |
84 | | - "else", |
85 | | - " echo \"adb not found; skipping Android emulator shutdown.\";", |
86 | | - "fi", |
87 | | - "pkill -f \"emulator@\" >/dev/null 2>&1 || true", |
88 | | - "echo \"Android emulators stopped (if any were running).\"" |
89 | | - ], |
90 | | - "stop-ios": [ |
91 | | - "if command -v xcrun >/dev/null 2>&1 && xcrun -f simctl >/dev/null 2>&1; then", |
92 | | - " if xcrun simctl list devices booted | grep -q \"Booted\"; then", |
93 | | - " echo \"Shutting down booted iOS simulators...\";", |
94 | | - " xcrun simctl shutdown all >/dev/null 2>&1 || true;", |
95 | | - " else", |
96 | | - " echo \"No booted iOS simulators detected.\";", |
97 | | - " fi;", |
98 | | - "else", |
99 | | - " echo \"simctl not available; skipping iOS shutdown.\";", |
100 | | - "fi", |
101 | | - "echo \"iOS simulators shutdown (if any were running).\"" |
102 | | - ], |
103 | | - "stop": ["devbox run stop-android", "devbox run stop-ios"], |
104 | | - "test": ["devbox run test-android", "devbox run test-ios"] |
| 43 | + ] |
105 | 44 | } |
106 | 45 | } |
107 | 46 | } |
0 commit comments