Skip to content

Commit c7369ba

Browse files
authored
Merge pull request #567 from giulcioffi/CIworkflowWithAPI
Add CI workflows (to be used with ArduinoCore-API integration)
2 parents b9b84b6 + e62bb96 commit c7369ba

File tree

2 files changed

+282
-0
lines changed

2 files changed

+282
-0
lines changed
+269
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,269 @@
1+
name: Compile Examples
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- ".github/workflows/compile-examples.yml"
7+
- "cores/**"
8+
- "libraries/**"
9+
- "variants/**"
10+
- "boards.txt"
11+
- "platform.txt"
12+
push:
13+
paths:
14+
- ".github/workflows/compile-examples.yml"
15+
- "cores/**"
16+
- "libraries/**"
17+
- "variants/**"
18+
- "boards.txt"
19+
- "platform.txt"
20+
21+
jobs:
22+
compile-test:
23+
runs-on: ubuntu-latest
24+
25+
env:
26+
# sketch paths to compile (recursive) for all boards
27+
UNIVERSAL_SKETCH_PATHS: |
28+
- extras/examples
29+
- libraries/Wire
30+
- libraries/USBHost
31+
- libraries/SPI
32+
- libraries/SFU/examples/SFU_LoadBinary
33+
- libraries/SAMD_AnalogCorrection
34+
- ~/Arduino/libraries/Servo/examples
35+
- ~/Arduino/libraries/LiquidCrystal/examples
36+
- ~/Arduino/libraries/Ethernet/examples
37+
- ~/Arduino/libraries/SD/examples
38+
- ~/Arduino/libraries/WiFi/examples
39+
- ~/Arduino/libraries/Arduino_LSM9DS1/examples
40+
- ~/Arduino/libraries/Arduino_JSON/examples
41+
- ~/Arduino/libraries/MFRC522/examples/ChangeUID
42+
- ~/Arduino/libraries/MFRC522/examples/DumpInfo
43+
- ~/Arduino/libraries/MFRC522/examples/FixBrickedUID
44+
- ~/Arduino/libraries/MFRC522/examples/MifareClassicValueBlock
45+
- ~/Arduino/libraries/MFRC522/examples/MinimalInterrupt
46+
- ~/Arduino/libraries/MFRC522/examples/Ntag216_AUTH
47+
- ~/Arduino/libraries/MFRC522/examples/RFID-Cloner
48+
- ~/Arduino/libraries/MFRC522/examples/ReadAndWrite
49+
- ~/Arduino/libraries/MFRC522/examples/ReadNUID
50+
- ~/Arduino/libraries/MFRC522/examples/ReadUidMultiReader
51+
- ~/Arduino/libraries/MFRC522/examples/firmware_check
52+
- ~/Arduino/libraries/MFRC522/examples/rfid_default_keys
53+
- ~/Arduino/libraries/MFRC522/examples/rfid_read_personal_data
54+
- ~/Arduino/libraries/MFRC522/examples/rfid_write_personal_data
55+
- ~/Arduino/libraries/WiFi101/examples
56+
57+
strategy:
58+
fail-fast: false
59+
60+
matrix:
61+
board: [
62+
{"fqbn": "arduino:samd:arduino_zero_edbg", "type": "usb", "WAN": "false"},
63+
{"fqbn": "arduino:samd:arduino_zero_native", "type": "usb", "WAN": "false"},
64+
{"fqbn": "arduino:samd:mkr1000", "type": "usb", "WAN": "false"},
65+
{"fqbn": "arduino:samd:mkrzero", "type": "usb", "WAN": "false"},
66+
{"fqbn": "arduino:samd:mkrwifi1010", "type": "mkrWiFi1010", "WAN": "false"},
67+
{"fqbn": "arduino:samd:nano_33_iot", "type": "nano33IoT", "WAN": "false"},
68+
{"fqbn": "arduino:samd:mkrfox1200", "type": "usb", "WAN": "false"},
69+
{"fqbn": "arduino:samd:mkrwan1300", "type": "usb", "WAN": "true"},
70+
{"fqbn": "arduino:samd:mkrwan1310", "type": "mkrwan1310", "WAN": "true"},
71+
{"fqbn": "arduino:samd:mkrgsm1400", "type": "usb", "WAN": "false"},
72+
{"fqbn": "arduino:samd:mkrnb1500", "type": "mkrNB1500", "WAN": "false"},
73+
{"fqbn": "arduino:samd:mkrvidor4000", "type": "vidor", "WAN": "false"},
74+
{"fqbn": "arduino:samd:adafruit_circuitplayground_m0", "type": "adafruit_playg", "WAN": "false"},
75+
{"fqbn": "arduino:samd:mzero_pro_bl_dbg", "type": "mzero", "WAN": "false"},
76+
{"fqbn": "arduino:samd:mzero_pro_bl", "type": "mzero", "WAN": "false"},
77+
{"fqbn": "arduino:samd:mzero_bl", "type": "mzero", "WAN": "false"},
78+
{"fqbn": "arduino:samd:tian", "type": "tian", "WAN": "false"}
79+
]
80+
81+
# make board type-specific customizations to the matrix jobs
82+
include:
83+
# Normal USB boards with all the general libraries
84+
- board:
85+
type: "usb"
86+
additional-sketch-paths: |
87+
- ~/Arduino/libraries/Firmata/examples/StandardFirmataPlus
88+
- ~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet
89+
- ~/Arduino/libraries/Firmata/examples/StandardFirmata
90+
- ~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata
91+
- ~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata
92+
- ~/Arduino/libraries/Firmata/examples/ServoFirmata
93+
- ~/Arduino/libraries/Firmata/examples/EchoString
94+
- ~/Arduino/libraries/Firmata/examples/AnalogFirmata
95+
- ~/Arduino/libraries/Firmata/examples/AllInputsFirmata
96+
- libraries/I2S/examples
97+
- libraries/SDU/examples
98+
# Vidor board
99+
- board:
100+
type: "vidor"
101+
additional-sketch-paths: |
102+
- libraries/SAMD_BootloaderUpdater/examples
103+
- libraries/I2S/examples
104+
- ~/Arduino/libraries/VidorPeripherals/examples
105+
# mkrwifi1010
106+
- board:
107+
type: "mkrWiFi1010"
108+
additional-sketch-paths: |
109+
- libraries/I2S/examples
110+
- libraries/SDU/examples
111+
- ~/Arduino/libraries/WiFiNINA/examples
112+
# mkrnb1500 boards
113+
- board:
114+
type: "mkrNB1500"
115+
additional-sketch-paths: |
116+
- libraries/I2S/examples
117+
- libraries/SDU/examples
118+
- ~/Arduino/libraries/MKRNB/examples
119+
# nano_33_iot
120+
- board:
121+
type: "nano33IoT"
122+
additional-sketch-paths: |
123+
- libraries/I2S/examples
124+
- ~/Arduino/libraries/WiFiNINA/examples
125+
# mkrwan1310
126+
- board:
127+
type: "mkrwan1310"
128+
additional-sketch-paths: |
129+
- libraries/I2S/examples
130+
# adafruit_cicrcuitplayground board
131+
- board:
132+
type: "adafruit_playg"
133+
additional-sketch-paths: |
134+
- libraries/SDU/examples
135+
# mzero boards
136+
- board:
137+
type: "mzero"
138+
additional-sketch-paths: |
139+
- ~/Arduino/libraries/Firmata/examples/StandardFirmataPlus
140+
- ~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet
141+
- ~/Arduino/libraries/Firmata/examples/StandardFirmata
142+
- ~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata
143+
- ~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata
144+
- ~/Arduino/libraries/Firmata/examples/ServoFirmata
145+
- ~/Arduino/libraries/Firmata/examples/EchoString
146+
- ~/Arduino/libraries/Firmata/examples/AnalogFirmata
147+
- ~/Arduino/libraries/Firmata/examples/AllInputsFirmata
148+
- libraries/SDU/examples
149+
# tian board
150+
- board:
151+
type: "tian"
152+
additional-sketch-paths: |
153+
- ~/Arduino/libraries/Firmata/examples/StandardFirmataPlus
154+
- ~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet
155+
- ~/Arduino/libraries/Firmata/examples/StandardFirmata
156+
- ~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata
157+
- ~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata
158+
- ~/Arduino/libraries/Firmata/examples/ServoFirmata
159+
- ~/Arduino/libraries/Firmata/examples/EchoString
160+
- ~/Arduino/libraries/Firmata/examples/AnalogFirmata
161+
- ~/Arduino/libraries/Firmata/examples/AllInputsFirmata
162+
# MKRGSM1400 board
163+
- board:
164+
fqbn: "arduino:samd:mkrgsm1400"
165+
mkrgsm1400-sketch-paths: |
166+
- ~/Arduino/libraries/MKRGSM/examples
167+
# MKRWAN board
168+
- board:
169+
WAN: "true"
170+
wan-sketch-paths: |
171+
- ~/Arduino/libraries/MKRWAN/examples
172+
173+
steps:
174+
- name: Checkout repository
175+
uses: actions/checkout@v2
176+
177+
# The source files are in a subfolder of the ArduinoCore-API repository, so it's not possible to clone it directly to the final destination in the core
178+
- name: Checkout ArduinoCore-API
179+
uses: actions/checkout@v2
180+
with:
181+
repository: arduino/ArduinoCore-API
182+
path: extras/ArduinoCore-API
183+
184+
- name: Check if API should be compiled in the core
185+
id: checkapi
186+
run: |
187+
if [[ $(grep -r api platform.txt) ]]; then echo "::set-output name=IS_API::true"; fi
188+
189+
- name: Install ArduinoCore-API
190+
run: mv "$GITHUB_WORKSPACE/extras/ArduinoCore-API/api" "$GITHUB_WORKSPACE/cores/arduino"
191+
if: steps.checkapi.outputs.IS_API == 'true'
192+
193+
- name: Checkout Basic examples
194+
uses: actions/checkout@v2
195+
with:
196+
repository: arduino/arduino-examples
197+
path: extras
198+
199+
- name: Compile examples
200+
uses: arduino/compile-sketches@main
201+
with:
202+
fqbn: ${{ matrix.board.fqbn }}
203+
libraries: |
204+
- source-url: https://github.com/arduino-libraries/WiFi101.git
205+
- name: MFRC522
206+
- name: Arduino_MKRMEM
207+
- name: FlashStorage
208+
- name: Keyboard
209+
- name: Mouse
210+
- name: Servo
211+
- name: LiquidCrystal
212+
- name: CapacitiveSensor
213+
- name: Ethernet
214+
- name: ArduinoBearSSL
215+
- name: Arduino_APDS9960
216+
- name: Arduino_LSM9DS1
217+
- name: ArduinoHttpClient
218+
- name: NTPClient
219+
- name: TFT
220+
- name: ArduinoMqttClient
221+
- name: Arduino_CRC32
222+
- name: Arduino_LSM6DS3
223+
- name: Stepper
224+
- name: SD
225+
- name: Arduino_JSON
226+
- name: Arduino_HTS221
227+
- name: Firmata
228+
- name: ArduinoMotorCarrier
229+
- name: ArduinoCloudThing
230+
- name: Arduino_DebugUtils
231+
- name: WiFi Link
232+
- name: Arduino_LPS22HB
233+
- name: CTC GO MOTIONS
234+
- name: ArduinoModbus
235+
- name: ArduinoIoTCloudBearSSL
236+
- name: ArduinoDMX
237+
- name: ArduinoRS485
238+
- name: Arduino_OAuth
239+
- name: CTC GO CORE
240+
- name: WiFi
241+
- name: Bridge
242+
- name: Temboo
243+
- name: ArduinoIoTCloud
244+
- name: Madgwick
245+
- name: MKRGSM
246+
- name: MKRNB
247+
- name: LoRa
248+
- name: MKRWAN
249+
- name: WiFiNINA
250+
- source-url: https://github.com/vidor-libraries/VidorPeripherals.git
251+
platforms: |
252+
# Use Board Manager to install the latest release of Arduino SAMD Boards to get the toolchain
253+
- name: "arduino:samd"
254+
# Overwrite the Board Manager installation with the local platform
255+
- source-path: "./"
256+
name: "arduino:samd"
257+
sketch-paths: |
258+
${{ env.UNIVERSAL_SKETCH_PATHS }}
259+
${{ matrix.additional-sketch-paths }}
260+
${{ matrix.mkrgsm1400-sketch-paths }}
261+
${{ matrix.wan-sketch-paths }}
262+
enable-deltas-report: 'true'
263+
verbose: 'true'
264+
265+
- name: Save memory usage change report as artifact
266+
uses: actions/upload-artifact@v1
267+
with:
268+
name: sketches-reports
269+
path: sketches-reports
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Report PR Size Deltas
2+
3+
on:
4+
schedule:
5+
- cron: '*/5 * * * *'
6+
7+
jobs:
8+
report:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Comment size deltas reports to PRs
13+
uses: arduino/report-size-deltas@main

0 commit comments

Comments
 (0)