@@ -2,24 +2,36 @@ version: 2.1
2
2
3
3
orbs :
4
4
android :
circleci/[email protected]
5
- flutter :
circleci/[email protected] .2
5
+ flutter :
circleci/[email protected] .4
6
6
7
7
advanced-checkout :
vsco/[email protected]
8
8
9
+ executors :
10
+ flutter-executor :
11
+ docker :
12
+ - image : cimg/base:stable
13
+
14
+
9
15
commands :
10
16
setup_flutter :
17
+ parameters :
18
+ version :
19
+ type : string
20
+ default : 3.24.3
21
+ use_melos :
22
+ type : boolean
23
+ default : true
24
+ working_dir :
25
+ type : string
26
+ default : " ~/project"
11
27
steps :
12
28
- flutter/install_sdk_and_pub :
13
- version : 3.10.5
14
- - run :
15
- name : Install melos
16
- command : dart pub global activate melos
17
- - run :
18
- name : bootstrap
19
- command : melos bootstrap
20
- - run :
21
- name : Generate Pigeons
22
- command : melos pigeon
29
+ version : <<parameters.version>>
30
+ app-dir : <<parameters.working_dir>>
31
+ - install_flutter_and_dart_packages :
32
+ generate_pigeons : true
33
+ use_melos : <<parameters.use_melos>>
34
+ working_dir : <<parameters.working_dir>>
23
35
setup_ios :
24
36
steps :
25
37
# Flutter doesn't support Apple Silicon yet, so we need to install Rosetta use Flutter on M1 machines.
@@ -32,7 +44,7 @@ commands:
32
44
command : sudo gem install cocoapods
33
45
- run :
34
46
name : Install Pods
35
- working_directory : apps /example/ios
47
+ working_directory : packages/Instabug-Flutter /example/ios
36
48
command : pod install --repo-update
37
49
setup_captain :
38
50
parameters :
@@ -89,26 +101,67 @@ commands:
89
101
parameters :
90
102
generate_pigeons :
91
103
type : boolean
104
+ use_melos :
105
+ type : boolean
106
+ default : true
107
+ working_dir :
108
+ type : string
92
109
steps :
93
- - run :
94
- name : Install Flutter Packages
95
- command : flutter pub get
96
- - run :
97
- name : Install Dart Packages
98
- command : melos dart_bootstrap
99
- description : Install Dart Packages (for dart explicit packages)
100
110
- when :
101
111
condition :
102
112
equal :
103
- - <<parameters.generate_pigeons >>
113
+ - <<parameters.use_melos >>
104
114
- true
105
115
steps :
106
116
- run :
107
- name : Generate Pigeons
108
- command : melos pigeon
117
+ name : Install melos
118
+ command : dart pub global activate melos && echo 'export PATH="$PATH:$HOME/.pub-cache/bin"' >> $BASH_ENV
119
+ - run :
120
+ name : Install Flutter Packages
121
+ command : melos bootstrap
122
+ - run :
123
+ name : Install Dart Packages
124
+ command : melos dart_bootstrap
125
+ description : Install Dart Packages (for dart explicit packages)
126
+ - when :
127
+ condition :
128
+ equal :
129
+ - <<parameters.generate_pigeons>>
130
+ - true
131
+ steps :
132
+ - run :
133
+ name : Generate Pigeons
134
+ command : melos pigeon
135
+ - run :
136
+ name : Build Pigeons
137
+ command : melos generate
138
+ - when :
139
+ condition :
140
+ equal :
141
+ - <<parameters.use_melos>>
142
+ - false
143
+ steps :
144
+ - run :
145
+ name : Install Flutter Packages
146
+ command : flutter pub get
109
147
- run :
110
- name : Build Pigeons
111
- command : melos generate
148
+ name : Install Dart Packages
149
+ command : dart pub get
150
+ description : Install Dart Packages (for dart explicit packages)
151
+ - when :
152
+ condition :
153
+ equal :
154
+ - <<parameters.generate_pigeons>>
155
+ - true
156
+ steps :
157
+ - run :
158
+ name : Generate Pigeons
159
+ command : sh scripts/pigeon.sh
160
+ - run :
161
+ name : Build Pigeons
162
+ command : dart run build_runner build --delete-conflicting-outputs
163
+
164
+
112
165
113
166
jobs :
114
167
danger :
@@ -129,18 +182,42 @@ jobs:
129
182
parameters :
130
183
version :
131
184
type : string
132
- docker :
133
- - image : cirrusci/ flutter:<<parameters.version>>
185
+ default : " 3.24.3 "
186
+ executor : flutter-executor
134
187
steps :
135
188
- advanced-checkout/shallow-checkout
136
- - install_flutter_and_dart_packages :
137
- generate_pigeons : true
189
+ - run : sudo apt-get update&& sudo apt-get -y install lcov
190
+ - setup_flutter :
191
+ version : <<parameters.version>>
192
+ use_melos : true
193
+ - run : melos test-coverage
194
+ - persist_to_workspace :
195
+ root : packages/Instabug-Flutter/coverage
196
+ paths :
197
+ - lcov.info
198
+
199
+ test_flutter_without_melos :
200
+ parameters :
201
+ version :
202
+ type : string
203
+ default : " 2.10.0"
204
+ app-dir :
205
+ type : string
206
+ executor : flutter-executor
207
+ working_directory : <<parameters.app-dir>>
208
+ steps :
209
+ - advanced-checkout/shallow-checkout :
210
+ path : ~/project
211
+ - run : sudo apt-get update&& sudo apt-get -y install lcov
212
+ - setup_flutter :
213
+ version : <<parameters.version>>
214
+ use_melos : false
215
+ working_dir : <<parameters.app-dir>>
138
216
- run : flutter test --coverage
139
217
- run :
140
- working_directory : coverage
141
- command : lcov --remove lcov.info '*.g.dart' '*.mocks.dart' -o lcov.info
218
+ command : lcov --remove coverage/lcov.info '*.g.dart' '*.mocks.dart' -o coverage/lcov.info
142
219
- persist_to_workspace :
143
- root : coverage
220
+ root : " << parameters.app-dir >>/ coverage"
144
221
paths :
145
222
- lcov.info
146
223
@@ -153,7 +230,7 @@ jobs:
153
230
- advanced-checkout/shallow-checkout
154
231
- setup_flutter
155
232
- android/run-tests :
156
- working-directory : apps /example/android
233
+ working-directory : packages/Instabug-Flutter /example/android
157
234
test-command : ./gradlew test
158
235
159
236
e2e_android_captain :
@@ -170,7 +247,7 @@ jobs:
170
247
run-tests-working-directory : e2e
171
248
additional-avd-args : --device 3
172
249
system-image : system-images;android-33;default;x86_64
173
- post-emulator-launch-assemble-command : cd apps /example && flutter build apk --debug
250
+ post-emulator-launch-assemble-command : cd packages/Instabug-Flutter /example && flutter build apk --debug
174
251
test-command : dotnet test
175
252
176
253
test_ios :
@@ -184,7 +261,7 @@ jobs:
184
261
- setup_ios
185
262
- run :
186
263
name : Build and run tests
187
- working_directory : ~/project/apps /example/ios
264
+ working_directory : ~/project/packages/Instabug-Flutter /example/ios
188
265
command : |
189
266
xcodebuild -allowProvisioningUpdates \
190
267
-workspace Runner.xcworkspace \
@@ -205,7 +282,7 @@ jobs:
205
282
- setup_ios
206
283
- run :
207
284
name : Build Example App
208
- working_directory : apps /example
285
+ working_directory : packages/Instabug-Flutter /example
209
286
command : flutter build ios --simulator
210
287
- run :
211
288
name : Run E2E Tests
@@ -214,34 +291,28 @@ jobs:
214
291
command : dotnet test
215
292
216
293
format_flutter :
217
- docker :
218
- - image : cirrusci/flutter
294
+ executor : flutter-executor
219
295
steps :
220
296
- advanced-checkout/shallow-checkout
221
- - install_flutter_and_dart_packages :
222
- generate_pigeons : false
297
+ - setup_flutter
223
298
- run :
224
299
name : Check Format
225
300
command : melos format
226
301
227
302
lint_flutter :
228
- docker :
229
- - image : cirrusci/flutter
303
+ executor : flutter-executor
230
304
steps :
231
305
- advanced-checkout/shallow-checkout
232
- - install_flutter_and_dart_packages :
233
- generate_pigeons : true
306
+ - setup_flutter
234
307
- run :
235
308
name : Perform Static Analysis
236
309
command : melos analyze
237
310
238
311
verify_pub :
239
- docker :
240
- - image : cirrusci/flutter
312
+ executor : flutter-executor
241
313
steps :
242
314
- advanced-checkout/shallow-checkout
243
- - install_flutter_and_dart_packages :
244
- generate_pigeons : true
315
+ - setup_flutter
245
316
- run :
246
317
name : Check Package Score
247
318
command : melos score
@@ -251,7 +322,7 @@ jobs:
251
322
macos :
252
323
xcode : 15.2.0
253
324
resource_class : macos.m1.medium.gen1
254
- working_directory : " ~"
325
+ working_directory : " ~/project "
255
326
steps :
256
327
- advanced-checkout/shallow-checkout :
257
328
path : ~/project
@@ -260,7 +331,7 @@ jobs:
260
331
name : Install Rosetta
261
332
command : softwareupdate --install-rosetta --agree-to-license
262
333
- flutter/install_sdk_and_pub :
263
- version : 3.3.6
334
+ version : 3.10.5
264
335
app-dir : project
265
336
- run :
266
337
name : Install pub packages
@@ -294,10 +365,10 @@ workflows:
294
365
- test_flutter-stable
295
366
- test_flutter :
296
367
name : test_flutter-stable
297
- version : stable
298
- - test_flutter :
368
+ - test_flutter_without_melos :
299
369
name : test_flutter-2.10.5
300
370
version : 2.10.5
371
+ app-dir : " ~/project/packages/Instabug-Flutter/"
301
372
- e2e_android_captain
302
373
- test_ios
303
374
- e2e_ios_captain
@@ -308,7 +379,7 @@ workflows:
308
379
- verify_pub :
309
380
requires :
310
381
- lint_flutter
311
- - hold_release :
382
+ - hold_release_instabug_flutter :
312
383
type : approval
313
384
requires :
314
385
- danger
@@ -325,9 +396,9 @@ workflows:
325
396
filters :
326
397
branches :
327
398
only : master
328
- - release :
399
+ - release_instabug_flutter :
329
400
requires :
330
- - hold_release
401
+ - hold_release_instabug_flutter
331
402
filters :
332
403
branches :
333
404
only : master
0 commit comments