Skip to content

Commit 1edf637

Browse files
committed
add compile flow
1 parent 8e78185 commit 1edf637

File tree

1 file changed

+251
-0
lines changed

1 file changed

+251
-0
lines changed
Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,251 @@
1+
name: Compile Provisioning
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- ".github/workflows/compile-provisioning.yml"
7+
- "examples/**"
8+
- "src/**"
9+
push:
10+
paths:
11+
- ".github/workflows/compile-provisioning.yml"
12+
- "examples/**"
13+
- "src/**"
14+
15+
jobs:
16+
build:
17+
runs-on: ubuntu-latest
18+
19+
env:
20+
# libraries to install for all boards
21+
UNIVERSAL_LIBRARIES: |
22+
# Install the ArduinoIoTCloud library from the repository
23+
- source-path: ./
24+
- name: ArduinoBLE
25+
version: 1.4.0
26+
- name: ArduinoHttpClient
27+
version: 0.6.1
28+
- name: Arduino_DebugUtils
29+
version: 1.4.0
30+
- name: ArduinoMqttClient
31+
version: 0.1.8
32+
- name: Arduino_KVStore
33+
version: 1.0.0
34+
- source-url: https://github.com/pennam/Arduino_ConnectionHandler.git
35+
version: 0f0f4a4ce718fcf2066a092a92cc2fdcd4d8bedd
36+
- name: Arduino_SecureElement
37+
version: 0.4.0
38+
- name: Arduino_CloudUtils
39+
version: 1.1.1
40+
- source-url: https://github.com/arduino-libraries/Arduino_UniqueHWId.git
41+
version: 7e1bfeb586cac00f043c39997a1e9937ed8152b0
42+
- name: Arduino_NetworkConfigurator
43+
version: 0.3.1
44+
# sketch paths to compile (recursive) for all boards
45+
UNIVERSAL_SKETCH_PATHS: |
46+
- examples/utility/Provisioning_2.0
47+
SKETCHES_REPORTS_PATH: sketches-reports
48+
49+
strategy:
50+
fail-fast: false
51+
52+
matrix:
53+
board:
54+
- fqbn: arduino:samd:mkrwifi1010
55+
type: nina
56+
artifact-name-suffix: arduino-samd-mkrwifi1010
57+
- fqbn: arduino:samd:nano_33_iot
58+
type: nina
59+
artifact-name-suffix: arduino-samd-nano_33_iot
60+
- fqbn: arduino:mbed_portenta:envie_m7:split=100_0
61+
type: mbed_portenta
62+
artifact-name-suffix: arduino-mbed_portenta-envie_m7
63+
- fqbn: arduino:mbed_nano:nanorp2040connect
64+
type: nina
65+
artifact-name-suffix: arduino-mbed_nano-nanorp2040connect
66+
- fqbn: arduino:mbed_nicla:nicla_vision
67+
type: mbed_nicla
68+
artifact-name-suffix: arduino-mbed_nicla-nicla_vision
69+
- fqbn: arduino:mbed_opta:opta
70+
type: mbed_opta
71+
artifact-name-suffix: arduino-mbed_opta-opta
72+
- fqbn: arduino:mbed_giga:giga
73+
type: mbed_giga
74+
artifact-name-suffix: arduino-mbed_giga-giga
75+
- fqbn: arduino:renesas_portenta:portenta_c33
76+
type: renesas_portenta
77+
artifact-name-suffix: arduino-renesas_portenta-portenta_c33
78+
- fqbn: arduino:renesas_uno:unor4wifi
79+
type: renesas_uno
80+
artifact-name-suffix: arduino-renesas_uno-unor4wifi
81+
82+
# make board type-specific customizations to the matrix jobs
83+
include:
84+
# MKR WiFi 1010, Nano 33 IoT, Nano RP2040 Connect
85+
- board:
86+
type: nina
87+
platforms: |
88+
# Install samd and mbed_nano platform via Boards Manager
89+
- name: arduino:samd
90+
version: 1.8.14
91+
- name: arduino:mbed_nano
92+
version: 4.3.1
93+
libraries: |
94+
- name: RTCZero
95+
version: 1.6.0
96+
- name: ArduinoECCX08
97+
version: 1.3.9
98+
- name: Adafruit SleepyDog Library
99+
version: 1.6.5
100+
- name: ArduinoBearSSL
101+
version: 1.7.6
102+
- source-url: https://github.com/arduino-libraries/WiFiNINA.git
103+
version: 69e786c5c73fe94b7f408853550f6f151cfc58b0
104+
# Portenta
105+
- board:
106+
type: mbed_portenta
107+
platforms: |
108+
# Install mbed_portenta platform via Boards Manager
109+
- name: arduino:mbed_portenta
110+
version: 4.3.1
111+
libraries: |
112+
- source-url: https://github.com/pennam/Arduino_Cellular.git
113+
version: bfbd25791d200b113d640e16eed43ce547ab0b0c
114+
- name: ArduinoECCX08
115+
version: 1.3.9
116+
- name: StreamDebugger
117+
version: 1.0.1
118+
- name: TinyGsm
119+
version: 0.12.0
120+
- name: ArduinoBearSSL
121+
version: 1.7.6
122+
# Nicla Vision
123+
- board:
124+
type: mbed_nicla
125+
platforms: |
126+
# Install mbed_nicla platform via Boards Manager
127+
- name: arduino:mbed_nicla
128+
version: 4.3.1
129+
# Opta
130+
- board:
131+
type: mbed_opta
132+
platforms: |
133+
# Install mbed_opta platform via Boards Manager
134+
- name: arduino:mbed_opta
135+
version: 4.3.1
136+
libraries: |
137+
- name: ArduinoECCX08
138+
version: 1.3.9
139+
- name: ArduinoBearSSL
140+
version: 1.7.6
141+
# GIGA
142+
- board:
143+
type: mbed_giga
144+
platforms: |
145+
# Install mbed_giga platform via Boards Manager
146+
- name: arduino:mbed_giga
147+
version: 4.3.1
148+
libraries: |
149+
- name: ArduinoECCX08
150+
version: 1.3.9
151+
- name: ArduinoBearSSL
152+
version: 1.7.6
153+
# Portenta C33
154+
- board:
155+
type: renesas_portenta
156+
platforms: |
157+
# Install renesas_portenta platform via Boards Manager
158+
- name: arduino:renesas_portenta
159+
version: 1.4.1
160+
libraries: |
161+
- source-url: https://github.com/pennam/Arduino_Cellular.git
162+
version: bfbd25791d200b113d640e16eed43ce547ab0b0c
163+
- name: StreamDebugger
164+
version: 1.0.1
165+
- name: TinyGsm
166+
version: 0.12.0
167+
# UNO R4 WiFi
168+
- board:
169+
type: renesas_uno
170+
platforms: |
171+
# Install renesas_uno platform via Boards Manager
172+
- name: arduino:renesas_uno
173+
version: 1.4.1
174+
175+
steps:
176+
- name: Checkout
177+
uses: actions/checkout@v4
178+
- name: Clear cache
179+
run: |
180+
rm -rf ~/.cache
181+
- name: Compile production provisioning sketch
182+
uses: arduino/compile-sketches@v1
183+
with:
184+
github-token: ${{ secrets.GITHUB_TOKEN }}
185+
platforms: ${{ matrix.platforms }}
186+
fqbn: ${{ matrix.board.fqbn }}
187+
libraries: |
188+
${{ env.UNIVERSAL_LIBRARIES }}
189+
${{ matrix.libraries }}
190+
sketch-paths: |
191+
${{ env.UNIVERSAL_SKETCH_PATHS }}
192+
${{ matrix.sketch-paths }}
193+
enable-deltas-report: "true"
194+
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}
195+
cli-compile-flags: |
196+
- --clean
197+
- --verbose
198+
- --output-dir
199+
- ${{ runner.temp }}/provisioning-prod
200+
201+
- name: Compile staging provisioning sketch
202+
uses: arduino/compile-sketches@v1
203+
with:
204+
github-token: ${{ secrets.GITHUB_TOKEN }}
205+
platforms: ${{ matrix.platforms }}
206+
fqbn: ${{ matrix.board.fqbn }}
207+
libraries: |
208+
${{ env.UNIVERSAL_LIBRARIES }}
209+
${{ matrix.libraries }}
210+
sketch-paths: |
211+
${{ env.UNIVERSAL_SKETCH_PATHS }}
212+
${{ matrix.sketch-paths }}
213+
enable-deltas-report: "true"
214+
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}
215+
cli-compile-flags: |
216+
- --clean
217+
- --verbose
218+
- --build-property
219+
- "build.extra_flags=-DCOMPILE_TEST=1"
220+
- --output-dir
221+
- ${{ runner.temp }}/provisioning-staging
222+
223+
- name: Write data to size trends report spreadsheet
224+
# Update report on every push to the master branch
225+
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
226+
uses: arduino/report-size-trends@main
227+
with:
228+
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}
229+
google-key-file: ${{ secrets.GOOGLE_KEY_FILE }}
230+
spreadsheet-id: 1I6NZkpZpf8KugBkE92adB1Z3_b7ZepOpCdYTOigJpN4
231+
232+
- name: Save memory usage change report as artifact
233+
if: github.event_name == 'pull_request'
234+
uses: actions/upload-artifact@v4
235+
with:
236+
name: sketches-report-${{ matrix.board.artifact-name-suffix }}
237+
path: ${{ env.SKETCHES_REPORTS_PATH }}
238+
239+
- name: Save production artifact
240+
if: github.event_name == 'pull_request'
241+
uses: actions/upload-artifact@v4
242+
with:
243+
name: provisioning-prod-${{ matrix.board.artifact-name-suffix }}
244+
path: ${{ runner.temp }}/provisioning-prod/
245+
246+
- name: Save staging artifact
247+
if: github.event_name == 'pull_request'
248+
uses: actions/upload-artifact@v4
249+
with:
250+
name: provisioning-staging-${{ matrix.board.artifact-name-suffix }}
251+
path: ${{ runner.temp }}/provisioning-staging/

0 commit comments

Comments
 (0)