Browse Source

Validate example configs with CircleCI

Runs in parallel to TravisCI and runs *much* faster on same jobs.  Finishes all examples configs in <8 min on cache hit; <10 min on cache miss.  Cache miss is triggered on platformio.ini change. I'd suggest move to it entirely, but it is limited to just 1500 min of runtime per month and it isn't clear yet how much Marlin would need so suggest we implement in parallel like this, then observe.  If the example builds don't catch issues, and 1500 min turns out to be plenty, we can switch to implimenting standard arsenal of tests in CircleCI and ditch TravisCI to gain speed improvement (although I do like seeing the varied Travis avatars staring at me ;).

I agree that hand-crafted tests would be better, but until we have that, this can't hurt.

After merging, you'll need to add Marlin project to CircleCI at: https://circleci.com
Example results at: https://github.com/fiveangle/Marlin/commits/bf-circleci_config
Unknown 6 years ago
parent
commit
502258aa5f
1 changed files with 289 additions and 0 deletions
  1. 289
    0
      .circleci/config.yml

+ 289
- 0
.circleci/config.yml View File

@@ -0,0 +1,289 @@
1
+# Python CircleCI 2.0 configuration file
2
+#
3
+# Check https://circleci.com/docs/2.0/language-python/ for more details
4
+#
5
+version: 2
6
+jobs:
7
+  build:
8
+    docker:
9
+      # specify the version you desire here
10
+      # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
11
+      - image: circleci/python:2.7.13
12
+
13
+      # Specify service dependencies here if necessary
14
+      # CircleCI maintains a library of pre-built images
15
+      # documented at https://circleci.com/docs/2.0/circleci-images/
16
+      # - image: circleci/postgres:9.4
17
+    environment:
18
+      TEST_PLATFORM: "-e megaatmega2560"
19
+
20
+    working_directory: ~/Marlin
21
+
22
+    steps:
23
+      - checkout
24
+
25
+      - restore_cache:
26
+          paths:
27
+          - ~/.platformio
28
+          - ~/Marlin/.piolibdeps
29
+          keys:
30
+          - v1-dependencies-{{ checksum "~/Marlin/platformio.ini" }}
31
+          # fallback to using the latest cache if no exact match is found
32
+          - v1-dependencies-
33
+
34
+      - run:
35
+          name: install dependencies
36
+          command: |
37
+            sudo pip install -U platformio
38
+
39
+      # run tests!
40
+      - run:
41
+          name: run tests
42
+          command: |
43
+            #
44
+            #
45
+            # Fetch the tag information for the current branch
46
+            ls -la
47
+            git fetch origin --tags
48
+            #
49
+            # Publish the buildroot script folder
50
+            chmod +x buildroot/bin/*
51
+            export PATH=`pwd`/buildroot/bin/:${PATH}
52
+
53
+            # Generate custom version include
54
+            generate_version_header_for_marlin ./Marlin/src/inc
55
+            cat ./Marlin/src/inc/_Version.h
56
+            #
57
+            # Backup pins_RAMPS.h
58
+            #
59
+            cp Marlin/src/pins/pins_RAMPS.h Marlin/src/pins/pins_RAMPS.h.backup
60
+            #
61
+
62
+            #################################
63
+            # Build all sample configurations
64
+            #################################
65
+
66
+            echo testing megaatmega2560 targets...
67
+            export TEST_PLATFORM="-e megaatmega2560"
68
+            restore_configs
69
+            echo use_example_configs adafruit/ST7565
70
+            use_example_configs adafruit/ST7565
71
+            build_marlin_pio ./ ${TEST_PLATFORM}
72
+            restore_configs
73
+            echo use_example_configs BQ/Hephestos
74
+            use_example_configs BQ/Hephestos
75
+            build_marlin_pio ./ ${TEST_PLATFORM}
76
+            restore_configs
77
+            echo use_example_configs BQ/Hephestos_2
78
+            use_example_configs BQ/Hephestos_2
79
+            build_marlin_pio ./ ${TEST_PLATFORM}
80
+            restore_configs
81
+            echo use_example_configs BQ/WITBOX
82
+            use_example_configs BQ/WITBOX
83
+            build_marlin_pio ./ ${TEST_PLATFORM}
84
+            restore_configs
85
+            echo use_example_configs AliExpress/CL-260
86
+            use_example_configs AliExpress/CL-260
87
+            build_marlin_pio ./ ${TEST_PLATFORM}
88
+            restore_configs
89
+            echo use_example_configs Cartesio
90
+            use_example_configs Cartesio
91
+            build_marlin_pio ./ ${TEST_PLATFORM}
92
+            restore_configs
93
+            echo use_example_configs delta/FLSUN/auto_calibrate
94
+            use_example_configs delta/FLSUN/auto_calibrate
95
+            build_marlin_pio ./ ${TEST_PLATFORM}
96
+            restore_configs
97
+            echo use_example_configs delta/FLSUN/kossel_mini
98
+            use_example_configs delta/FLSUN/kossel_mini
99
+            build_marlin_pio ./ ${TEST_PLATFORM}
100
+            restore_configs
101
+            echo use_example_configs delta/generic
102
+            use_example_configs delta/generic
103
+            build_marlin_pio ./ ${TEST_PLATFORM}
104
+            restore_configs
105
+            echo use_example_configs delta/kossel_mini
106
+            use_example_configs delta/kossel_mini
107
+            build_marlin_pio ./ ${TEST_PLATFORM}
108
+            restore_configs
109
+            echo use_example_configs delta/kossel_xl
110
+            use_example_configs delta/kossel_xl
111
+            build_marlin_pio ./ ${TEST_PLATFORM}
112
+            restore_configs
113
+            echo use_example_configs Felix
114
+            use_example_configs Felix
115
+            build_marlin_pio ./ ${TEST_PLATFORM}
116
+            restore_configs
117
+            echo use_example_configs Felix/DUAL
118
+            use_example_configs Felix/DUAL
119
+            build_marlin_pio ./ ${TEST_PLATFORM}
120
+            restore_configs
121
+            echo use_example_configs gCreate/gMax1.5+
122
+            use_example_configs gCreate/gMax1.5+
123
+            build_marlin_pio ./ ${TEST_PLATFORM}
124
+            restore_configs
125
+            echo use_example_configs Geeetech/GT2560
126
+            use_example_configs Geeetech/GT2560
127
+            build_marlin_pio ./ ${TEST_PLATFORM}
128
+            restore_configs
129
+            echo use_example_configs Geeetech/I3_Pro_X-GT2560
130
+            use_example_configs Geeetech/I3_Pro_X-GT2560
131
+            build_marlin_pio ./ ${TEST_PLATFORM}
132
+            restore_configs
133
+            echo use_example_configs Infitary/i3-M508
134
+            use_example_configs Infitary/i3-M508
135
+            build_marlin_pio ./ ${TEST_PLATFORM}
136
+            restore_configs
137
+            #
138
+            # Disabled due to compile failure on E0_AUTO_FAN_PIN PB8
139
+            #
140
+            #  use_example_configs Malyan/M200
141
+            #  build_marlin_pio ./ ${TEST_PLATFORM}
142
+            #  restore_configs
143
+            echo use_example_configs Micromake/C1/basic
144
+            use_example_configs Micromake/C1/basic
145
+            build_marlin_pio ./ ${TEST_PLATFORM}
146
+            restore_configs
147
+            echo use_example_configs Micromake/C1/enhanced
148
+            use_example_configs Micromake/C1/enhanced
149
+            build_marlin_pio ./ ${TEST_PLATFORM}
150
+            restore_configs
151
+            echo use_example_configs RepRapWorld/Megatronics
152
+            use_example_configs RepRapWorld/Megatronics
153
+            build_marlin_pio ./ ${TEST_PLATFORM}
154
+            restore_configs
155
+            echo use_example_configs RigidBot
156
+            use_example_configs RigidBot
157
+            build_marlin_pio ./ ${TEST_PLATFORM}
158
+            restore_configs
159
+            echo use_example_configs SCARA
160
+            use_example_configs SCARA
161
+            build_marlin_pio ./ ${TEST_PLATFORM}
162
+            restore_configs
163
+            echo use_example_configs Velleman/K8200
164
+            use_example_configs Velleman/K8200
165
+            build_marlin_pio ./ ${TEST_PLATFORM}
166
+            restore_configs
167
+            echo use_example_configs Velleman/K8400/Dual-head
168
+            use_example_configs Velleman/K8400/Dual-head
169
+            build_marlin_pio ./ ${TEST_PLATFORM}
170
+            restore_configs
171
+            echo use_example_configs Velleman/K8400
172
+            use_example_configs Velleman/K8400
173
+            build_marlin_pio ./ ${TEST_PLATFORM}
174
+            restore_configs
175
+            echo use_example_configs Wanhao/Duplicator6
176
+            use_example_configs Wanhao/Duplicator6
177
+            build_marlin_pio ./ ${TEST_PLATFORM}
178
+            #
179
+            # Disabled due to compile failure on https://github.com/stawel/SlowSoftI2CMaster
180
+            #
181
+            #  - Requires https://github.com/stawel/SlowSoftI2CMaster
182
+            #  restore_configs
183
+            #  use_example_configs wt150
184
+            #  build_marlin_pio ./ ${TEST_PLATFORM}
185
+
186
+
187
+            echo testing anet10 targets...
188
+            export TEST_PLATFORM="-e anet10"
189
+            restore_configs
190
+            echo use_example_configs Anet/A6
191
+            use_example_configs Anet/A6
192
+            build_marlin_pio ./ ${TEST_PLATFORM}
193
+            restore_configs
194
+            echo use_example_configs Anet/A8
195
+            use_example_configs Anet/A8
196
+            build_marlin_pio ./ ${TEST_PLATFORM}
197
+            restore_configs
198
+            echo use_example_configs Creality/CR-10
199
+            use_example_configs Creality/CR-10
200
+            build_marlin_pio ./ ${TEST_PLATFORM}
201
+            restore_configs
202
+            echo use_example_configs Malyan/M150
203
+            use_example_configs Malyan/M150
204
+            build_marlin_pio ./ ${TEST_PLATFORM}
205
+            restore_configs
206
+            echo use_example_configs Sanguinololu
207
+            use_example_configs Sanguinololu
208
+            build_marlin_pio ./ ${TEST_PLATFORM}
209
+            restore_configs
210
+            echo use_example_configs TinyBoy2
211
+            use_example_configs TinyBoy2
212
+            build_marlin_pio ./ ${TEST_PLATFORM}
213
+
214
+
215
+            echo testing rambo targets...
216
+            export TEST_PLATFORM="-e rambo"
217
+            restore_configs
218
+            echo use_example_configs AlephObjects/TAZ4
219
+            use_example_configs AlephObjects/TAZ4
220
+            build_marlin_pio ./ ${TEST_PLATFORM}
221
+
222
+
223
+            echo testing teensy20 targets...
224
+            export TEST_PLATFORM="-e teensy20"
225
+            #
226
+            # Disabled due to Z_MIN_PIN related compile failure
227
+            #
228
+            #  restore_configs
229
+            #  use_example_configs delta/kossel_pro
230
+            #  build_marlin_pio ./ ${TEST_PLATFORM}
231
+            restore_configs
232
+            echo use_example_configs makibox
233
+            use_example_configs makibox
234
+            build_marlin_pio ./ ${TEST_PLATFORM}
235
+
236
+
237
+            echo testing sanguino_atmega644p targets...
238
+            export TEST_PLATFORM="-e sanguino_atmega644p"
239
+            restore_configs
240
+            echo use_example_configs tvrrug/Round2
241
+            use_example_configs tvrrug/Round2
242
+            build_marlin_pio ./ ${TEST_PLATFORM}
243
+
244
+
245
+            echo testing LPC1768 targets...
246
+            export TEST_PLATFORM="-e LPC1768"
247
+            restore_configs
248
+            echo use_example_configs FolgerTech/i3-2020
249
+            use_example_configs FolgerTech/i3-2020
250
+            build_marlin_pio ./ ${TEST_PLATFORM}
251
+            restore_configs
252
+            echo use_example_configs Mks/Sbase
253
+            use_example_configs Mks/Sbase
254
+            build_marlin_pio ./ ${TEST_PLATFORM}
255
+
256
+            #
257
+            # Disabled due to numerous compile failures
258
+            #
259
+            #  echo testing STM32F1 targets...
260
+            #  export TEST_PLATFORM="-e STM32F1"
261
+            #  restore_configs
262
+            #  use_example_configs STM32F10
263
+            #  build_marlin_pio ./ ${TEST_PLATFORM}
264
+            #  restore_configs
265
+            #  use_example_configs stm32f103ret6
266
+            #  build_marlin_pio ./ ${TEST_PLATFORM}
267
+
268
+
269
+            #
270
+            # Disabled due do pin related compile failures
271
+            #
272
+            #  echo testing DUE targets...
273
+            #  export TEST_PLATFORM="-e DUE"
274
+            #  restore_configs
275
+            #  use_example_configs UltiMachine/Archim2
276
+            #  build_marlin_pio ./ ${TEST_PLATFORM}
277
+
278
+            #
279
+            # Remove temp files from dependencies tree prior to caching
280
+            rm -rf ~/Marlin/.piolibdeps/_tmp_*
281
+
282
+
283
+
284
+      - save_cache:
285
+          paths:
286
+          - ~/.platformio
287
+          - ~/Marlin/.piolibdeps
288
+          key: v1-dependencies-{{ checksum "~/Marlin/platformio.ini" }}
289
+

Loading…
Cancel
Save