1
+ # SPDX-FileCopyrightText: 2014 MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
1
5
name : Build CI
2
6
3
7
on :
@@ -16,25 +20,24 @@ jobs:
16
20
env :
17
21
GITHUB_CONTEXT : ${{ toJson(github) }}
18
22
run : echo "$GITHUB_CONTEXT"
19
- - uses : actions/checkout@v2
23
+ - uses : actions/checkout@v2.2.0
20
24
with :
21
25
submodules : true
22
26
fetch-depth : 0
23
27
- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
24
- - run : git submodule sync
25
- - run : git submodule foreach git remote -v
26
- - run : git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
27
28
- name : CircuitPython version
28
- run : git describe --dirty --tags
29
+ run : |
30
+ git describe --dirty --tags
31
+ echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
29
32
- name : Set up Python 3.8
30
33
uses : actions/setup-python@v1
31
34
with :
32
35
python-version : 3.8
33
36
- name : Install deps
34
37
run : |
35
38
sudo apt-get install -y eatmydata
36
- sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64
37
- pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid
39
+ sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64 latexmk texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra
40
+ pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid isort black awscli mypy
38
41
- name : Versions
39
42
run : |
40
43
gcc --version
@@ -64,35 +67,62 @@ jobs:
64
67
- name : mpy Tests
65
68
run : MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float
66
69
working-directory : tests
67
- - name : Stubs
68
- run : make stubs -j2
69
- - name : Docs
70
- run : sphinx-build -E -W -b html . _build/html
70
+ - name : Build and Validate Stubs
71
+ run : make check-stubs -j2
72
+ - uses : actions/upload-artifact@v2
73
+ with :
74
+ name : stubs
75
+ path : circuitpython-stubs*
76
+ - name : Test Documentation Build (HTML)
77
+ run : sphinx-build -E -W -b html -D version=${{ env.CP_VERSION }} -D release=${{ env.CP_VERSION }} . _build/html
78
+ - uses : actions/upload-artifact@v2
79
+ with :
80
+ name : docs
81
+ path : _build/html
82
+ - name : Test Documentation Build (LaTeX/PDF)
83
+ run : |
84
+ make latexpdf
85
+ - uses : actions/upload-artifact@v2
86
+ with :
87
+ name : docs
88
+ path : _build/latex
71
89
- name : Translations
72
90
run : make check-translate
73
91
- name : New boards check
74
92
run : python3 -u ci_new_boards_check.py
75
93
working-directory : tools
94
+ - name : Duplicate USB VID/PID Check
95
+ run : python3 -u -m tools.ci_check_duplicate_usb_vid_pid
76
96
- name : Build mpy-cross.static-raspbian
77
97
run : make -C mpy-cross -j2 -f Makefile.static-raspbian
78
- - uses : actions/upload-artifact@v1.0.0
98
+ - uses : actions/upload-artifact@v2
79
99
with :
80
100
name : mpy-cross.static-raspbian
81
101
path : mpy-cross/mpy-cross.static-raspbian
82
-
83
102
- name : Build mpy-cross.static
84
103
run : make -C mpy-cross -j2 -f Makefile.static
85
- - uses : actions/upload-artifact@v1.0.0
104
+ - uses : actions/upload-artifact@v2
86
105
with :
87
106
name : mpy-cross.static-amd64-linux
88
107
path : mpy-cross/mpy-cross.static
89
-
90
108
- name : Build mpy-cross.static-mingw
91
109
run : make -C mpy-cross -j2 -f Makefile.static-mingw
92
- - uses : actions/upload-artifact@v1.0.0
110
+ - uses : actions/upload-artifact@v2
93
111
with :
94
112
name : mpy-cross.static-x64-windows
95
113
path : mpy-cross/mpy-cross.static.exe
114
+ - name : Upload stubs and mpy-cross builds to S3
115
+ run : |
116
+ [ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-raspbian s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-raspbian-${{ env.CP_VERSION }} --no-progress --region us-east-1
117
+ [ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-amd64-linux-${{ env.CP_VERSION }} --no-progress --region us-east-1
118
+ [ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static.exe s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-x64-windows-${{ env.CP_VERSION }}.exe --no-progress --region us-east-1
119
+ zip -9r circuitpython-stubs.zip circuitpython-stubs
120
+ [ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp circuitpython-stubs.zip s3://adafruit-circuit-python/bin/stubs/circuitpython-stubs-${{ env.CP_VERSION }}.zip --no-progress --region us-east-1
121
+ env :
122
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
123
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
124
+ if : github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
125
+
96
126
97
127
mpy-cross-mac :
98
128
runs-on : macos-10.15
@@ -101,31 +131,38 @@ jobs:
101
131
env :
102
132
GITHUB_CONTEXT : ${{ toJson(github) }}
103
133
run : echo "$GITHUB_CONTEXT"
104
- - name : Make gettext programs available
134
+ - name : Install dependencies
105
135
run : |
106
136
brew install gettext
107
- echo "::set-env name=PATH:: /usr/local/opt/gettext/bin:$PATH"
137
+ echo >>$GITHUB_PATH /usr/local/opt/gettext/bin
108
138
- name : Versions
109
139
run : |
110
140
gcc --version
111
141
python3 --version
112
142
msgfmt --version
113
- - uses : actions/checkout@v2
143
+ - uses : actions/checkout@v2.2.0
114
144
with :
115
145
submodules : true
116
146
fetch-depth : 0
117
147
- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
118
- - run : git submodule sync
119
- - run : git submodule foreach git remote -v
120
- - run : git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
121
148
- name : CircuitPython version
122
- run : git describe --dirty --tags
149
+ run : |
150
+ git describe --dirty --tags
151
+ echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
123
152
- name : Build mpy-cross
124
153
run : make -C mpy-cross -j2
125
- - uses : actions/upload-artifact@v1.0.0
154
+ - uses : actions/upload-artifact@v2
126
155
with :
127
156
name : mpy-cross-macos-catalina
128
157
path : mpy-cross/mpy-cross
158
+ - name : Upload mpy-cross build to S3
159
+ run : |
160
+ [ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross-macos-catalina-${{ env.CP_VERSION }} --no-progress --region us-east-1
161
+ env :
162
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
163
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
164
+ if : github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
165
+
129
166
130
167
build-arm :
131
168
runs-on : ubuntu-18.04
@@ -135,6 +172,7 @@ jobs:
135
172
matrix :
136
173
board :
137
174
- " 8086_commander"
175
+ - " ADM_B_NRF52840_1"
138
176
- " TG-Watch02A"
139
177
- " aloriumtech_evo_m51"
140
178
- " aramcon_badge_2019"
@@ -144,7 +182,10 @@ jobs:
144
182
- " arduino_nano_33_iot"
145
183
- " arduino_zero"
146
184
- " bast_pro_mini_m0"
147
- - " bdmicro_vina_m0"
185
+ - " bdmicro_vina_d21"
186
+ - " bdmicro_vina_d51"
187
+ - " bless_dev_board_multi_sensor"
188
+ - " blm_badge"
148
189
- " capablerobot_usbhub"
149
190
- " catwan_usbstick"
150
191
- " circuitbrains_basic_m0"
@@ -160,6 +201,8 @@ jobs:
160
201
- " datum_imu"
161
202
- " datum_light"
162
203
- " datum_weather"
204
+ - " dynossat_edu_eps"
205
+ - " dynossat_edu_obc"
163
206
- " electronut_labs_blip"
164
207
- " electronut_labs_papyr"
165
208
- " escornabot_makech"
@@ -173,6 +216,7 @@ jobs:
173
216
- " feather_m0_rfm69"
174
217
- " feather_m0_rfm9x"
175
218
- " feather_m0_supersized"
219
+ - " feather_m4_can"
176
220
- " feather_m4_express"
177
221
- " feather_m7_1011"
178
222
- " feather_mimxrt1011"
@@ -186,24 +230,31 @@ jobs:
186
230
- " hallowing_m0_express"
187
231
- " hallowing_m4_express"
188
232
- " hiibot_bluefi"
233
+ - " ikigaisense_vita"
189
234
- " imxrt1010_evk"
190
235
- " imxrt1020_evk"
191
236
- " imxrt1060_evk"
192
237
- " itsybitsy_m0_express"
193
238
- " itsybitsy_m4_express"
194
239
- " itsybitsy_nrf52840_express"
195
240
- " kicksat-sprite"
241
+ - " loc_ber_m4_base_board"
242
+ - " makerdiary_m60_keyboard"
243
+ - " makerdiary_nrf52840_m2_devkit"
196
244
- " makerdiary_nrf52840_mdk"
197
245
- " makerdiary_nrf52840_mdk_usb_dongle"
246
+ - " matrixportal_m4"
198
247
- " meowbit_v121"
199
248
- " meowmeow"
200
249
- " metro_m0_express"
201
250
- " metro_m4_airlift_lite"
202
251
- " metro_m4_express"
252
+ - " metro_m7_1011"
203
253
- " metro_nrf52840_express"
204
254
- " mini_sam_m4"
205
255
- " monster_m4sk"
206
256
- " ndgarage_ndbit6"
257
+ - " ndgarage_ndbit6_v2"
207
258
- " nfc_copy_cat"
208
259
- " nice_nano"
209
260
- " nucleo_f746zg"
@@ -220,6 +271,7 @@ jobs:
220
271
- " pca10100"
221
272
- " pewpew10"
222
273
- " pewpew_m4"
274
+ - " picoplanet"
223
275
- " pirkey_m0"
224
276
- " pitaya_go"
225
277
- " pyb_nano_v2"
@@ -233,8 +285,13 @@ jobs:
233
285
- " pyportal"
234
286
- " pyportal_titano"
235
287
- " pyruler"
288
+ - " qtpy_m0"
289
+ - " qtpy_m0_haxpress"
290
+ - " raytac_mdbt50q-db-40"
236
291
- " robohatmm1_m4"
237
292
- " sam32"
293
+ - " same54_xplained"
294
+ - " seeeduino_wio_terminal"
238
295
- " seeeduino_xiao"
239
296
- " serpente"
240
297
- " shirtty"
@@ -259,6 +316,7 @@ jobs:
259
316
- " teensy41"
260
317
- " teknikio_bluebird"
261
318
- " thunderpack"
319
+ - " tinkeringtech_scoutmakes_azul"
262
320
- " trellis_m4_express"
263
321
- " trinket_m0"
264
322
- " trinket_m0_haxpress"
@@ -286,22 +344,19 @@ jobs:
286
344
gcc --version
287
345
arm-none-eabi-gcc --version
288
346
python3 --version
289
- - uses : actions/checkout@v2
347
+ - uses : actions/checkout@v2.2.0
290
348
with :
291
349
submodules : true
292
350
fetch-depth : 0
293
351
- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
294
- - run : git submodule sync
295
- - run : git submodule foreach git remote -v
296
- - run : git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
297
352
- name : mpy-cross
298
353
run : make -C mpy-cross -j2
299
354
- name : build
300
355
run : python3 -u build_release_files.py
301
356
working-directory : tools
302
357
env :
303
358
BOARDS : ${{ matrix.board }}
304
- - uses : actions/upload-artifact@v1.0.0
359
+ - uses : actions/upload-artifact@v2
305
360
with :
306
361
name : ${{ matrix.board }}
307
362
path : bin/${{ matrix.board }}
@@ -337,22 +392,19 @@ jobs:
337
392
gcc --version
338
393
riscv64-unknown-elf-gcc --version
339
394
python3 --version
340
- - uses : actions/checkout@v2
395
+ - uses : actions/checkout@v2.2.0
341
396
with :
342
397
submodules : true
343
398
fetch-depth : 0
344
399
- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
345
- - run : git submodule sync
346
- - run : git submodule foreach git remote -v
347
- - run : git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
348
400
- name : mpy-cross
349
401
run : make -C mpy-cross -j2
350
402
- name : build
351
403
run : python3 -u build_release_files.py
352
404
working-directory : tools
353
405
env :
354
406
BOARDS : ${{ matrix.board }}
355
- - uses : actions/upload-artifact@v1.0.0
407
+ - uses : actions/upload-artifact@v2
356
408
with :
357
409
name : ${{ matrix.board }}
358
410
path : bin/${{ matrix.board }}
@@ -369,30 +421,42 @@ jobs:
369
421
fail-fast : false
370
422
matrix :
371
423
board :
424
+ - " adafruit_magtag_2.9_grayscale"
425
+ - " adafruit_metro_esp32s2"
426
+ - " electroniccats_bastwifi"
427
+ - " espressif_kaluga_1"
372
428
- " espressif_saola_1_wroom"
373
429
- " espressif_saola_1_wrover"
430
+ - " microdev_micro_s2"
431
+ - " muselab_nanoesp32_s2"
432
+ - " targett_module_clip_wroom"
433
+ - " targett_module_clip_wrover"
434
+ - " unexpectedmaker_feathers2"
435
+ - " unexpectedmaker_feathers2_prerelease"
374
436
375
437
steps :
376
438
- name : Set up Python 3.8
377
439
uses : actions/setup-python@v1
378
440
with :
379
441
python-version : 3.8
380
- - uses : actions/checkout@v2
442
+ - uses : actions/checkout@v2.2.0
381
443
with :
382
444
submodules : true
383
445
fetch-depth : 0
384
446
- run : git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
385
- - run : git submodule sync
386
- - run : git submodule foreach git remote -v
387
- - run : git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
388
447
- name : CircuitPython version
389
448
run : git describe --dirty --tags
390
449
- uses : actions/cache@v1
391
450
name : Fetch IDF tool cache
392
451
id : idf-cache
393
452
with :
394
453
path : ${{ github.workspace }}/.idf_tools
395
- key : ${{ runner.os }}-idf-tools-${{ hashFiles('.git/modules/ports/esp32s2/esp-idf/HEAD') }}-20200523
454
+ key : ${{ runner.os }}-idf-tools-${{ hashFiles('.git/modules/ports/esp32s2/esp-idf/HEAD') }}-20200801
455
+ - name : Clone IDF submodules
456
+ run : |
457
+ (cd $IDF_PATH && git submodule update --init)
458
+ env :
459
+ IDF_PATH : ${{ github.workspace }}/ports/esp32s2/esp-idf
396
460
- name : Install IDF tools
397
461
run : |
398
462
$IDF_PATH/tools/idf_tools.py --non-interactive install required
@@ -434,7 +498,7 @@ jobs:
434
498
IDF_PATH : ${{ github.workspace }}/ports/esp32s2/esp-idf
435
499
IDF_TOOLS_PATH : ${{ github.workspace }}/.idf_tools
436
500
BOARDS : ${{ matrix.board }}
437
- - uses : actions/upload-artifact@v1.0.0
501
+ - uses : actions/upload-artifact@v2
438
502
with :
439
503
name : ${{ matrix.board }}
440
504
path : bin/${{ matrix.board }}
0 commit comments