Skip to content

Commit 3afceee

Browse files
authored
Simplify CircleCI config (#282)
1 parent 08d5b00 commit 3afceee

File tree

2 files changed

+94
-83
lines changed

2 files changed

+94
-83
lines changed

.circleci/config.yml

Lines changed: 90 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,49 @@ version: 2.1
33
aliases:
44
- &save-cache-yarn
55
save_cache:
6-
key: v1-yarn-packages-{{ checksum "yarn.lock" }}
6+
key: yarn-packages-{{ .Environment.CACHE_VERSION }}-{{ checksum "yarn.lock" }}
77
paths:
88
- ~/.cache/yarn
99
- &restore-cache-yarn
1010
restore_cache:
1111
name: Restore Yarn Package Cache
1212
keys:
13-
- v1-yarn-packages-{{ checksum "yarn.lock" }}
14-
- &save-cache-detox
13+
- yarn-packages-{{ .Environment.CACHE_VERSION }}-{{ checksum "yarn.lock" }}
14+
- &save-cache-detox-env
1515
save_cache:
16-
key: v1-detox-{{ checksum "yarn.lock"}}
16+
key: detox-env-{{ .Environment.CACHE_VERSION }}-{{ arch }}-{{ .Environment.CIRCLE_WORKING_DIRECTORY }}
17+
paths:
18+
- /usr/local/Homebrew
19+
- ~/Library/Caches/Homebrew
20+
- &restore-cache-detox-env
21+
restore_cache:
22+
name: Restoring Detox Env Cache
23+
keys:
24+
- detox-env-{{ .Environment.CACHE_VERSION }}-{{ arch }}-{{ .Environment.CIRCLE_WORKING_DIRECTORY }}
25+
- &save-cache-detox-app
26+
save_cache:
27+
key: detox-app-{{ .Environment.CACHE_VERSION }}-{{ checksum "yarn.lock"}}
1728
paths:
1829
- node_modules
1930
- ios/Pods
20-
- &restore-cache-detox
31+
- &restore-cache-detox-app
2132
restore_cache:
22-
name: Restoring Detox Cache
33+
name: Restoring Detox App Cache
2334
keys:
24-
- v1-detox-{{ checksum "yarn.lock"}}
35+
- detox-app-{{ .Environment.CACHE_VERSION }}-{{ checksum "yarn.lock"}}
2536
- &save-android-build-cache
2637
save_cache:
2738
paths:
2839
- ~/.gradle/caches
2940
- ~/.gradle/wrapper
3041
- ~/.android/build-cache
31-
key: v1-gradle-build-cache-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }}-{{ checksum "yarn.lock" }}
42+
key: gradle-build-cache-{{ .Environment.CACHE_VERSION }}-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }}-{{ checksum "yarn.lock" }}
3243
when: always # Ensures build assets are cached even on failed builds
3344
- &restore-android-build-cache
3445
restore_cache:
3546
name: Restoring Android & Gradle cache
3647
keys:
37-
- v1-gradle-build-cache-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }}-{{ checksum "yarn.lock" }}
48+
- gradle-build-cache-{{ .Environment.CACHE_VERSION }}-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }}-{{ checksum "yarn.lock" }}
3849
- &attach-workspace
3950
attach_workspace:
4051
at: ~/react-native-url-polyfill
@@ -46,7 +57,7 @@ executors:
4657
working_directory: ~/react-native-url-polyfill
4758
xcode-11:
4859
macos:
49-
xcode: 11
60+
xcode: 11.7.0
5061
environment:
5162
HOMEBREW_NO_AUTO_UPDATE: 1
5263
xcode-12:
@@ -73,48 +84,22 @@ commands:
7384
yarn install --frozen-lockfile --no-progress --non-interactive --cache-folder ~/.cache/yarn
7485
install-detox:
7586
steps:
87+
- *restore-cache-detox-env
7688
- run:
7789
name: Install Detox
7890
command: |
79-
brew update
8091
brew tap wix/brew
8192
brew install applesimutils
8293
yarn global add detox-cli
8394
- run:
8495
name: Clean Detox
8596
command: |
8697
detox clean-framework-cache && detox build-framework-cache
87-
test-detox-ios:
88-
steps:
89-
- *attach-workspace
90-
- *restore-cache-detox
91-
- install-yarn-dependencies
92-
- install-detox
93-
- run:
94-
name: Install Pods
95-
command: |
96-
curl https://cocoapods-specs.circleci.com/fetch-cocoapods-repo-from-s3.sh | bash -s cf
97-
cd ios && pod install --repo-update
98-
- run:
99-
name: Run Detox on iOS
100-
command: yarn e2e:ios
101-
- *save-cache-detox
102-
test-hermes-android:
103-
steps:
104-
- *attach-workspace
105-
- *restore-android-build-cache
106-
- install-yarn-dependencies
107-
- run:
108-
name: Enable Hermes
109-
command: sed -i "s/enableHermes:\sfalse/enableHermes:\ true/g" android/app/build.gradle
110-
- run:
111-
name: Build APK
112-
command: cd android && ./gradlew assembleRelease
113-
- *save-android-build-cache
98+
- *save-cache-detox-env
11499
test-hermes-ios:
115100
steps:
116101
- *attach-workspace
117-
- *restore-cache-detox
102+
- *restore-cache-detox-app
118103
- run:
119104
name: Enable Hermes
120105
command: npx shx sed -i "s/:hermes_enabled\s=>\sfalse/:hermes_enabled => true/g" ios/Podfile
@@ -144,7 +129,8 @@ jobs:
144129
- *save-cache-yarn
145130
- persist_to_workspace:
146131
root: .
147-
paths: .
132+
paths:
133+
- .
148134
lint:
149135
executor: default
150136
steps:
@@ -159,36 +145,58 @@ jobs:
159145
- run:
160146
name: Run Jest
161147
command: yarn test
162-
rn-0-60-test-ios:
163-
executor: xcode-11
164-
working_directory: ~/react-native-url-polyfill/detox/rn-0.60
165-
steps:
166-
- test-detox-ios
167-
rn-0-63-test-ios:
168-
executor: xcode-11
169-
working_directory: ~/react-native-url-polyfill/detox/rn-0.63
148+
test-ios:
149+
parameters:
150+
executor:
151+
default: xcode-12
152+
type: executor
153+
react-native-version:
154+
type: string
155+
executor: << parameters.executor >>
156+
working_directory: ~/react-native-url-polyfill/detox/rn-<< parameters.react-native-version >>
170157
steps:
171-
- test-detox-ios
172-
rn-0-63-test-hermes-android:
158+
- *attach-workspace
159+
- *restore-cache-detox-app
160+
- install-yarn-dependencies
161+
- install-detox
162+
- run:
163+
name: Fetch Pods specs
164+
command: curl https://cocoapods-specs.circleci.com/fetch-cocoapods-repo-from-s3.sh | bash -s cf
165+
- run:
166+
name: Install Pods
167+
command: cd ios && pod install --repo-update
168+
- run:
169+
name: Run Detox on iOS
170+
command: yarn e2e:ios
171+
- *save-cache-detox-app
172+
test-hermes-android:
173+
parameters:
174+
react-native-version:
175+
type: string
173176
executor: android
174-
working_directory: ~/react-native-url-polyfill/detox/rn-0.63
175-
steps:
176-
- test-hermes-android
177-
rn-0-64-test-ios:
178-
executor: xcode-12
179-
working_directory: ~/react-native-url-polyfill/detox/rn-0.64
177+
working_directory: ~/react-native-url-polyfill/detox/rn-<< parameters.react-native-version >>
180178
steps:
181-
- test-detox-ios
182-
rn-0-64-test-hermes-ios:
183-
executor: xcode-12
184-
working_directory: ~/react-native-url-polyfill/detox/rn-0.64
179+
- *attach-workspace
180+
- run:
181+
name: Enable Hermes
182+
command: sed -i "s/enableHermes:\sfalse/enableHermes:\ true/g" android/app/build.gradle
183+
- *restore-android-build-cache
184+
- install-yarn-dependencies
185+
- run:
186+
name: Build APK
187+
command: cd android && ./gradlew assembleRelease
188+
- *save-android-build-cache
189+
test-hermes-ios:
190+
parameters:
191+
executor:
192+
default: xcode-12
193+
type: executor
194+
react-native-version:
195+
type: string
196+
executor: << parameters.executor >>
197+
working_directory: ~/react-native-url-polyfill/detox/rn-<< parameters.react-native-version >>
185198
steps:
186199
- test-hermes-ios
187-
rn-0-64-test-hermes-android:
188-
executor: android
189-
working_directory: ~/react-native-url-polyfill/detox/rn-0.64
190-
steps:
191-
- test-hermes-android
192200

193201
workflows:
194202
tests:
@@ -200,27 +208,30 @@ workflows:
200208
- test-js:
201209
requires:
202210
- checkout
203-
- rn-0-60-test-ios:
204-
requires:
205-
- lint
206-
- test-js
207-
- rn-0-63-test-ios:
211+
- test-ios:
212+
name: test-ios-0.60
213+
executor: xcode-11
214+
react-native-version: '0.60'
208215
requires:
209216
- lint
210217
- test-js
211-
- rn-0-63-test-hermes-android:
218+
- test-ios:
219+
matrix:
220+
parameters:
221+
react-native-version: ['0.63', '0.64']
212222
requires:
213223
- lint
214224
- test-js
215-
- rn-0-64-test-ios:
225+
- test-hermes-ios:
226+
matrix:
227+
parameters:
228+
react-native-version: ['0.64']
216229
requires:
217-
- lint
218-
- test-js
219-
- rn-0-64-test-hermes-ios:
220-
requires:
221-
- lint
222-
- test-js
223-
- rn-0-64-test-hermes-android:
230+
- test-ios-<< matrix.react-native-version >>
231+
- test-hermes-android:
232+
matrix:
233+
parameters:
234+
react-native-version: ['0.63', '0.64']
224235
requires:
225236
- lint
226237
- test-js

detox/rn-0.63/ios/Podfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ target 'Detox' do
1717
#
1818
# Note that if you have use_frameworks! enabled, Flipper will not work and
1919
# you should disable these next few lines.
20-
use_flipper!
21-
post_install do |installer|
22-
flipper_post_install(installer)
23-
end
20+
# use_flipper!
21+
# post_install do |installer|
22+
# flipper_post_install(installer)
23+
# end
2424
end
2525

2626
target 'Detox-tvOS' do

0 commit comments

Comments
 (0)