Skip to content

Commit 4732617

Browse files
committed
⚙️ Chore: Add + Update Build-Releated Scripts
1 parent 45e33c6 commit 4732617

File tree

4 files changed

+142
-119
lines changed

4 files changed

+142
-119
lines changed

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@
4242
"reopen:ios": "yarn run close:ios ; yarn run open:ios",
4343
"build": "yarn run build:js ; yarn run build:ios",
4444
"build:js": "yarn run lint ; yarn run lint:circular-dep ; yarn run typescript ; yarn run bob build",
45-
"build:ios": "cd ./example/ios ; BUILD_INFO=$(xcodebuild -project ./*.xcodeproj -showBuildSettings -list -json | tr -d ' ' | tr -d '\n') ; SCHEME_NAME=$(node -pe 'JSON.parse(process.argv[1]).project.schemes[0]' $BUILD_INFO) ; xcodebuild -workspace *.xcworkspace -scheme $SCHEME_NAME -destination 'generic/platform=iOS' clean build",
45+
"build:ios": "sh ./scripts/build-ios.sh",
46+
"build:ios-release": "sh ./scripts/build-ios.sh Release",
4647
"build:update-version": "PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | sed 's/-.*//') ; cd example/ios ; agvtool new-marketing-version $PACKAGE_VERSION ; xcrun agvtool next-version -all ; cd ../..",
4748
"build:ios-info": "cd ./example/ios ; xcodebuild -project ./*.xcodeproj -showBuildSettings -list ; xcodebuild -project ./*.xcodeproj -showBuildSettings",
4849
"run:release": "cd example && npx react-native run-ios --configuration Release",
@@ -71,7 +72,7 @@
7172
"initialize:js": "yarn install ; cd example ; yarn install ; cd ..",
7273
"initialize:reset": "npm run nuke:all ; yarn ; npm run initialize",
7374
"test-build:all": "sh ./scripts/test-builds.sh",
74-
"test-build:all-quick": "sh ./scripts/test-builds-quick.sh"
75+
"test-build:all-quick": "sh ./scripts/test-builds.sh quick"
7576
},
7677
"keywords": [
7778
"react-native",

scripts/build-ios.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
BUILD_CONFIG="${1:-DEBUG}"
4+
5+
cd ./example/ios
6+
7+
BUILD_INFO=$(
8+
xcodebuild \
9+
-project ./*.xcodeproj \
10+
-showBuildSettings -list -json | tr -d ' ' | tr -d '\n'
11+
)
12+
13+
SCHEME_NAME=$(
14+
node -pe 'JSON.parse(process.argv[1]).project.schemes[0]' $BUILD_INFO
15+
)
16+
echo "Starting build..."
17+
echo "Configuration: $BUILD_CONFIG"
18+
echo "Scheme: $SCHEME_NAME"
19+
20+
xcodebuild \
21+
-workspace *.xcworkspace \
22+
-configuration Release \
23+
-scheme $SCHEME_NAME \
24+
-destination 'generic/platform=iOS' \
25+
clean build

scripts/test-builds-quick.sh

Lines changed: 0 additions & 66 deletions
This file was deleted.

scripts/test-builds.sh

Lines changed: 114 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,139 @@
11
#!/bin/bash
22

3-
NEW_ARCH_STATIC=PENDING
4-
OLD_ARCH_STATIC=PENDING
5-
NEW_ARCH_DYNAMIC=PENDING
3+
# value: either "quick" or "not-quick"
4+
# default: "not-quick"
5+
BUILD_MODE="${1:-not-quick}"
6+
7+
NEW_ARCH_STATIC_DEBUG=PENDING
8+
OLD_ARCH_STATIC_DEBUG=PENDING
9+
NEW_ARCH_STATIC_RELEASE=PENDING
10+
OLD_ARCH_STATIC_RELEASE=PENDING
11+
# NEW_ARCH_DYNAMIC=PENDING
612
OLD_ARCH_DYNAMIC=PENDING
713

814
log_build_status() {
9-
echo "\n\n\nBUILD RESULTS...";
10-
echo "Build - NEW_ARCH_STATIC: ${NEW_ARCH_STATIC}"
11-
echo "Build - OLD_ARCH_STATIC: ${OLD_ARCH_STATIC}"
12-
echo "Build - NEW_ARCH_DYNAMIC: ${NEW_ARCH_DYNAMIC}"
15+
echo "\n\n\nBUILD RESULTS..."
16+
echo "BUILD_MODE: $BUILD_MODE"
17+
echo "Build - NEW_ARCH_STATIC_DEBUG: ${NEW_ARCH_STATIC_DEBUG}"
18+
echo "Build - OLD_ARCH_STATIC_DEBUG: ${OLD_ARCH_STATIC_DEBUG}"
19+
echo "Build - NEW_ARCH_STATIC_RELEASE: ${NEW_ARCH_STATIC_RELEASE}"
20+
echo "Build - OLD_ARCH_STATIC_RELEASE: ${OLD_ARCH_STATIC_RELEASE}"
21+
# echo "Build - NEW_ARCH_DYNAMIC: ${NEW_ARCH_DYNAMIC}"
1322
echo "Build - OLD_ARCH_DYNAMIC: ${OLD_ARCH_DYNAMIC}"
1423
echo "\n\n"
1524
}
1625

1726
clear_cache(){
18-
echo '\nclearing pods + derived data...'
19-
yarn run nuke:example-pods
20-
yarn run nuke:derived-data
27+
echo "\nBUILD_MODE: $BUILD_MODE"
28+
29+
# Check the value of BUILD_MODE
30+
if [ "$BUILD_MODE" = "quick" ]; then
31+
echo "Skipping cleanup..."
32+
33+
elif [ "$BUILD_MODE" = "not-quick" ]; then
34+
echo 'clearing pods + derived data...'
35+
yarn run nuke:example-pods
36+
yarn run nuke:derived-data
37+
else
38+
echo "Invalid BUILD_MODE. Please use 'quick' or 'not-quick'."
39+
fi
2140
}
2241

23-
log_build_status;
24-
clear_cache;
42+
build_A1(){
43+
log_build_status
44+
clear_cache;
2545

26-
echo '\n\nBuild - new-arch (fabric) + static: Begin...\n'
27-
yarn run pod-install:new-static
28-
yarn run build:ios ;
46+
echo '\n\nBuild - new-arch (fabric) + static, debug: Begin...\n'
47+
yarn run pod-install:new-static
48+
yarn run build:ios ;
2949

30-
if [ $? -eq 0 ]; then
31-
NEW_ARCH_STATIC=SUCCESS;
32-
else
33-
NEW_ARCH_STATIC=FAILED;
34-
fi;
50+
if [ $? -eq 0 ]; then
51+
NEW_ARCH_STATIC_DEBUG=SUCCESS;
52+
else
53+
NEW_ARCH_STATIC_DEBUG=FAILED;
54+
fi
55+
}
56+
57+
build_A2(){
58+
log_build_status
59+
clear_cache
3560

36-
log_build_status
37-
clear_cache
61+
echo '\n\nBuild - old-arch (paper) + static, debug: Begin...'
62+
yarn run pod-install:old-static
63+
yarn run build:ios ;
3864

39-
echo '\n\nBuild - old-arch (paper) + static: Begin...'
40-
yarn run pod-install:old-static
41-
yarn run build:ios ;
65+
if [ $? -eq 0 ]; then
66+
OLD_ARCH_STATIC_DEBUG=SUCCESS;
67+
else
68+
OLD_ARCH_STATIC_DEBUG=FAILED;
69+
fi
70+
}
4271

43-
if [ $? -eq 0 ]; then
44-
OLD_ARCH_STATIC=SUCCESS;
45-
else
46-
OLD_ARCH_STATIC=FAILED;
47-
fi;
72+
build_B1(){
73+
log_build_status
74+
clear_cache
4875

49-
log_build_status
50-
clear_cache
76+
echo '\n\nBuild - new-arch (fabric) + static, release: Begin...'
77+
yarn run pod-install:new-static
78+
yarn run build:ios-release ;
5179

52-
echo '\nBuild - new-arch (fabric) + dynamic: Begin...\n'
53-
yarn run pod-install:new-dynamic
54-
yarn run build:ios ;
80+
if [ $? -eq 0 ]; then
81+
NEW_ARCH_STATIC_RELEASE=SUCCESS;
82+
else
83+
NEW_ARCH_STATIC_RELEASE=FAILED;
84+
fi
85+
}
5586

56-
if [ $? -eq 0 ]; then
57-
NEW_ARCH_DYNAMIC=SUCCESS;
58-
else
59-
NEW_ARCH_DYNAMIC=FAILED;
60-
fi;
87+
build_B2(){
88+
log_build_status
89+
clear_cache
6190

62-
log_build_status;
63-
clear_cache;
91+
echo '\n\nBuild - old-arch (paper) + static, release: Begin...'
92+
yarn run pod-install:old-static
93+
yarn run build:ios-release ;
6494

65-
echo 'Build - old-arch (paper) + static: Begin...'
66-
yarn run pod-install:old-dynamic
67-
yarn run build:ios ;
95+
if [ $? -eq 0 ]; then
96+
OLD_ARCH_STATIC_RELEASE=SUCCESS;
97+
else
98+
OLD_ARCH_STATIC_RELEASE=FAILED;
99+
fi
100+
}
101+
102+
# build_C1(){
103+
# log_build_status
104+
# clear_cache
105+
106+
# echo '\nBuild - new-arch (fabric) + dynamic: Begin...\n'
107+
# yarn run pod-install:new-dynamic
108+
# yarn run build:ios ;
109+
110+
# if [ $? -eq 0 ]; then
111+
# NEW_ARCH_DYNAMIC=SUCCESS;
112+
# else
113+
# NEW_ARCH_DYNAMIC=FAILED;
114+
# fi
115+
# }
116+
117+
build_C2(){
118+
log_build_status;
119+
clear_cache;
120+
121+
echo 'Build - old-arch (paper) + static: Begin...'
122+
yarn run pod-install:old-dynamic
123+
yarn run build:ios ;
124+
125+
if [ $? -eq 0 ]; then
126+
OLD_ARCH_DYNAMIC=SUCCESS;
127+
else
128+
OLD_ARCH_DYNAMIC=FAILED;
129+
fi
130+
}
68131

69-
if [ $? -eq 0 ]; then
70-
OLD_ARCH_DYNAMIC=SUCCESS;
71-
else
72-
OLD_ARCH_DYNAMIC=FAILED;
73-
fi;
132+
build_A1
133+
build_A2
134+
build_B1
135+
build_B2
136+
build_C2
74137

75138
echo "\n\n All Builds Completed..."
76-
log_build_status;
139+
log_build_status

0 commit comments

Comments
 (0)