Skip to content

Commit cc557a4

Browse files
committed
Add compile example for CI
1 parent b9b84b6 commit cc557a4

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
name: Compile Examples
2+
3+
on: [pull_request, push]
4+
5+
jobs:
6+
compile-test:
7+
runs-on: ubuntu-latest
8+
9+
env:
10+
# libraries to install for all boards
11+
UNIVERSAL_LIBRARIES: '"MFRC522" "Keyboard" "Mouse" "Servo" "LiquidCrystal" "CapacitiveSensor"'
12+
# sketch paths to compile (recursive) for all boards
13+
UNIVERSAL_SKETCH_PATHS: '"extras/shared/examples" "libraries/Wire" "libraries/USBHost" "libraries/SPI" "libraries/SFU/examples/SFU_LoadBinary" "libraries/SAMD_AnalogCorrection" "~/Arduino/libraries/Keyboard/examples/Serial" "~/Arduino/libraries/Servo/examples" "~/Arduino/libraries/LiquidCrystal/examples" "~/Arduino/libraries/Ethernet/examples" "~/Arduino/libraries/SD/examples" "~/Arduino/libraries/WiFi/examples" "~/Arduino/libraries/Arduino_LSM9DS1/examples" "~/Arduino/libraries/Arduino_JSON/examples" "~/Arduino/libraries/MFRC522/examples/ChangeUID" "~/Arduino/libraries/MFRC522/examples/DumpInfo" "~/Arduino/libraries/MFRC522/examples/FixBrickedUID" "~/Arduino/libraries/MFRC522/examples/MifareClassicValueBlock" "~/Arduino/libraries/MFRC522/examples/MinimalInterrupt" "~/Arduino/libraries/MFRC522/examples/Ntag216_AUTH" "~/Arduino/libraries/MFRC522/examples/RFID-Cloner" "~/Arduino/libraries/MFRC522/examples/ReadAndWrite" "~/Arduino/libraries/MFRC522/examples/ReadNUID" "~/Arduino/libraries/MFRC522/examples/ReadUidMultiReader" "~/Arduino/libraries/MFRC522/examples/firmware_check" "~/Arduino/libraries/MFRC522/examples/rfid_default_keys" "~/Arduino/libraries/MFRC522/examples/rfid_read_personal_data" "~/Arduino/libraries/MFRC522/examples/rfid_write_personal_data"'
14+
15+
strategy:
16+
fail-fast: false
17+
18+
matrix:
19+
board: [
20+
{"fqbn": "arduino:samd:arduino_zero_edbg", "type": "usb"}, #normal
21+
{"fqbn": "arduino:samd:arduino_zero_native", "type": "usb"},
22+
{"fqbn": "arduino:samd:mkr1000", "type": "usb"},
23+
{"fqbn": "arduino:samd:mkrzero", "type": "usb"},
24+
{"fqbn": "arduino:samd:mkrwifi1010", "type": "mkrwifi_nb1500"},
25+
{"fqbn": "arduino:samd:nano_33_iot", "type": "nano_mkrwan1310"},
26+
{"fqbn": "arduino:samd:mkrfox1200", "type": "usb"},
27+
{"fqbn": "arduino:samd:mkrwan1300", "type": "usb"},
28+
{"fqbn": "arduino:samd:mkrwan1310", "type": "nano_mkrwan1310"},
29+
{"fqbn": "arduino:samd:mkrgsm1400", "type": "usb"},
30+
{"fqbn": "arduino:samd:mkrnb1500", "type": "mkrwifi_nb1500"},
31+
{"fqbn": "arduino:samd:mkrvidor4000", "type": "vidor"},
32+
{"fqbn": "arduino:samd:adafruit_circuitplayground_m0", "type": "adafruit_playg"},
33+
{"fqbn": "arduino:samd:mzero_pro_bl_dbg", "type": "mzero"}, #normal
34+
{"fqbn": "arduino:samd:mzero_pro_bl", "type": "mzero"},
35+
{"fqbn": "arduino:samd:mzero_bl", "type": "mzero"},
36+
{"fqbn": "arduino:samd:tian", "type": "tian"} #,
37+
#{"fqbn": "arduino:samd:tian_cons", "type": "usb"} #normal
38+
]
39+
40+
# make board type-specific customizations to the matrix jobs
41+
include:
42+
# Normal USB boards with all the general libraries
43+
- board:
44+
type: "usb"
45+
additional-sketch-paths: '"~/Arduino/libraries/Firmata/examples/StandardFirmataPlus" "~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet" "~/Arduino/libraries/Firmata/examples/StandardFirmata" "~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata" "~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata" "~/Arduino/libraries/Firmata/examples/ServoFirmata" "~/Arduino/libraries/Firmata/examples/EchoString" "~/Arduino/libraries/Firmata/examples/AnalogFirmata" "~/Arduino/libraries/Firmata/examples/AllInputsFirmata" "libraries/I2S/examples" "libraries/SDU/examples"'
46+
# Vidor board
47+
- board:
48+
type: "vidor"
49+
additional-sketch-paths: '"libraries/SAMD_BootloaderUpdater/examples" "libraries/I2S/examples"'
50+
# mkrwifi1010 and mkrnb1500 boards
51+
- board:
52+
type: "mkrwifi_nb1500"
53+
additional-sketch-paths: '"libraries/I2S/examples" "libraries/SDU/examples"'
54+
# nano_33_iot and mkrwan1310 boards
55+
- board:
56+
type: "nano_mkrwan1310"
57+
additional-sketch-paths: "libraries/I2S/examples"
58+
# adafruit_cicrcuitplayground board
59+
- board:
60+
type: "adafruit_playg"
61+
additional-sketch-paths: "libraries/SDU/examples"
62+
# mzero boards
63+
- board:
64+
type: "mzero"
65+
additional-sketch-paths: '"~/Arduino/libraries/Firmata/examples/StandardFirmataPlus" "~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet" "~/Arduino/libraries/Firmata/examples/StandardFirmata" "~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata" "~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata" "~/Arduino/libraries/Firmata/examples/ServoFirmata" "~/Arduino/libraries/Firmata/examples/EchoString" "~/Arduino/libraries/Firmata/examples/AnalogFirmata" "~/Arduino/libraries/Firmata/examples/AllInputsFirmata" "libraries/SDU/examples"'
66+
# tian board
67+
- board:
68+
type: "tian"
69+
additional-sketch-paths: '"~/Arduino/libraries/Firmata/examples/StandardFirmataPlus" "~/Arduino/libraries/Firmata/examples/StandardFirmataEthernet" "~/Arduino/libraries/Firmata/examples/StandardFirmata" "~/Arduino/libraries/Firmata/examples/SimpleDigitalFirmata" "~/Arduino/libraries/Firmata/examples/SimpleAnalogFirmata" "~/Arduino/libraries/Firmata/examples/ServoFirmata" "~/Arduino/libraries/Firmata/examples/EchoString" "~/Arduino/libraries/Firmata/examples/AnalogFirmata" "~/Arduino/libraries/Firmata/examples/AllInputsFirmata"'
70+
71+
steps:
72+
- name: Checkout repository
73+
uses: actions/checkout@v2
74+
75+
# 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
76+
- name: Checkout ArduinoCore-API
77+
uses: actions/checkout@v2
78+
with:
79+
repository: arduino/ArduinoCore-API
80+
path: extras/ArduinoCore-API
81+
82+
- name: Install ArduinoCore-API
83+
run: mv "$GITHUB_WORKSPACE/extras/ArduinoCore-API/api" "$GITHUB_WORKSPACE/cores/arduino"
84+
85+
- name: Checkout Adafruit WiFiNINA
86+
uses: actions/checkout@v2
87+
with:
88+
repository: adafruit/WiFiNINA
89+
path: adafruit/WiFiNINA
90+
91+
- name: Compile examples
92+
uses: per1234/actions/libraries/compile-examples@master
93+
with:
94+
fqbn: ${{ matrix.board.fqbn }}
95+
libraries: |
96+
- name: MFRC522
97+
- name: Arduino_MKRMEM
98+
- name: FlashStorage
99+
- source-url: https://github.com/arduino-libraries/Keyboard.git
100+
- name: Mouse
101+
- name: Servo
102+
- name: LiquidCrystal
103+
- name: CapacitiveSensor
104+
- name: Ethernet
105+
- name: ArduinoBearSSL
106+
- name: Arduino_APDS9960
107+
- name: Servo
108+
- name: Arduino_LSM9DS1
109+
- name: ArduinoHttpClient
110+
- name: NTPClient
111+
- name: TFT
112+
- name: ArduinoMqttClient
113+
- name: Arduino_CRC32
114+
- name: Arduino_LSM6DS3
115+
- name: Stepper
116+
- name: SD
117+
- name: WiFi101
118+
- name: Arduino_JSON
119+
- name: Arduino_HTS221
120+
- name: Firmata
121+
- name: ArduinoMotorCarrier
122+
- name: ArduinoCloudThing
123+
- name: Arduino_DebugUtils
124+
- name: WiFi Link
125+
- name: Arduino_LPS22HB
126+
- name: CTC GO MOTIONS
127+
- name: ArduinoModbus
128+
- name: ArduinoIoTCloudBearSSL
129+
- name: ArduinoDMX
130+
- name: ArduinoRS485
131+
- name: Arduino_OAuth
132+
- name: CTC GO CORE
133+
- name: WiFi
134+
- name: Bridge
135+
- name: Temboo
136+
- name: ArduinoIoTCloud
137+
- name: Madgwick
138+
platforms: |
139+
# Use Board Manager to install the latest release of Arduino megaAVR Boards to get the toolchain
140+
- name: "arduino:samd"
141+
# Overwrite the Board Manager installation with the local platform
142+
- source-path: "./"
143+
name: "arduino:samd"
144+
sketch-paths: "${{ env.UNIVERSAL_SKETCH_PATHS }} ${{ matrix.additional-sketch-paths }}"
145+
enable-size-deltas-report: 'true'
146+
verbose: 'true'

0 commit comments

Comments
 (0)