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
Lines changed: 269 additions & 0 deletions
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
Lines changed: 13 additions & 0 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy