-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
247 lines (238 loc) · 9.07 KB
/
compile-platform-examples.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
name: Compile Examples
# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows
on:
push:
paths:
- ".github/workflows/compile-platform-examples.ya?ml"
- "cores/**"
- "libraries/**"
- "variants/**"
- "boards.txt"
- "platform.txt"
pull_request:
paths:
- ".github/workflows/compile-platform-examples.ya?ml"
- "cores/**"
- "libraries/**"
- "variants/**"
- "boards.txt"
- "platform.txt"
workflow_dispatch:
repository_dispatch:
jobs:
build:
name: ${{ matrix.board.fqbn }}
runs-on: ubuntu-latest
env:
SKETCHES_REPORTS_PATH: sketches-reports
strategy:
fail-fast: false
matrix:
board:
- fqbn: arduino:avr:yun
artifact-name-suffix: arduino-avr-yun
serial: true
softwareserial: true
- fqbn: arduino:avr:uno
artifact-name-suffix: arduino-avr-uno
serial: true
softwareserial: true
- fqbn: arduino:avr:diecimila:cpu=atmega328
artifact-name-suffix: arduino-avr-diecimila-cpu-atmega328
serial: true
softwareserial: true
- fqbn: arduino:avr:diecimila:cpu=atmega168
artifact-name-suffix: arduino-avr-diecimila-cpu-atmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:nano:cpu=atmega328
artifact-name-suffix: arduino-avr-nano-cpu-atmega328
serial: true
softwareserial: true
- fqbn: arduino:avr:nano:cpu=atmega328old
artifact-name-suffix: arduino-avr-nano-cpu-atmega328old
serial: true
softwareserial: true
- fqbn: arduino:avr:nano:cpu=atmega168
artifact-name-suffix: arduino-avr-nano-cpu-atmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:mega:cpu=atmega2560
artifact-name-suffix: arduino-avr-mega-cpu-atmega2560
serial: true
softwareserial: true
- fqbn: arduino:avr:mega:cpu=atmega1280
artifact-name-suffix: arduino-avr-mega-cpu-atmega1280
serial: true
softwareserial: true
- fqbn: arduino:avr:megaADK
artifact-name-suffix: arduino-avr-megaADK
serial: true
softwareserial: true
- fqbn: arduino:avr:leonardo
artifact-name-suffix: arduino-avr-leonardo
serial: true
softwareserial: true
- fqbn: arduino:avr:leonardoeth
artifact-name-suffix: arduino-avr-leonardoeth
serial: true
softwareserial: true
- fqbn: arduino:avr:micro
artifact-name-suffix: arduino-avr-micro
serial: true
softwareserial: true
- fqbn: arduino:avr:esplora
artifact-name-suffix: arduino-avr-esplora
serial: true
softwareserial: true
- fqbn: arduino:avr:mini:cpu=atmega328
artifact-name-suffix: arduino-avr-mini-cpu-atmega328
serial: true
softwareserial: true
- fqbn: arduino:avr:mini:cpu=atmega168
artifact-name-suffix: arduino-avr-mini-cpu-atmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:ethernet
artifact-name-suffix: arduino-avr-ethernet
serial: true
softwareserial: true
- fqbn: arduino:avr:fio
artifact-name-suffix: arduino-avr-fio
serial: true
softwareserial: true
- fqbn: arduino:avr:bt:cpu=atmega328
artifact-name-suffix: arduino-avr-bt-cpu-atmega328
serial: true
softwareserial: true
- fqbn: arduino:avr:bt:cpu=atmega168
artifact-name-suffix: arduino-avr-bt-cpu-atmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:LilyPadUSB
artifact-name-suffix: arduino-avr-LilyPadUSB
serial: true
softwareserial: true
- fqbn: arduino:avr:lilypad:cpu=atmega328
artifact-name-suffix: arduino-avr-lilypad-cpu-atmega328
serial: true
softwareserial: true
- fqbn: arduino:avr:lilypad:cpu=atmega168
artifact-name-suffix: arduino-avr-lilypad-cpu-atmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:pro:cpu=16MHzatmega328
artifact-name-suffix: arduino-avr-pro-cpu-16MHzatmega328
serial: true
softwareserial: true
- fqbn: arduino:avr:pro:cpu=8MHzatmega328
artifact-name-suffix: arduino-avr-pro-cpu-8MHzatmega328
serial: true
softwareserial: true
- fqbn: arduino:avr:pro:cpu=16MHzatmega168
artifact-name-suffix: arduino-avr-pro-cpu-16MHzatmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:pro:cpu=8MHzatmega168
artifact-name-suffix: arduino-avr-pro-cpu-8MHzatmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:atmegang:cpu=atmega168
artifact-name-suffix: arduino-avr-atmegang-cpu-atmega168
serial: true
softwareserial: true
- fqbn: arduino:avr:atmegang:cpu=atmega8
artifact-name-suffix: arduino-avr-atmegang-cpu-atmega8
serial: true
softwareserial: false
- fqbn: arduino:avr:robotControl
artifact-name-suffix: arduino-avr-robotControl
serial: true
softwareserial: false
- fqbn: arduino:avr:robotMotor
artifact-name-suffix: arduino-avr-robotMotor
serial: true
softwareserial: false
- fqbn: arduino:avr:gemma
artifact-name-suffix: arduino-avr-gemma
serial: false
softwareserial: false
- fqbn: arduino:avr:circuitplay32u4cat
artifact-name-suffix: arduino-avr-circuitplay32u4cat
serial: true
softwareserial: true
- fqbn: arduino:avr:yunmini
artifact-name-suffix: arduino-avr-yunmini
serial: true
softwareserial: true
- fqbn: arduino:avr:chiwawa
artifact-name-suffix: arduino-avr-chiwawa
serial: true
softwareserial: true
- fqbn: arduino:avr:one
artifact-name-suffix: arduino-avr-one
serial: true
softwareserial: true
- fqbn: arduino:avr:unowifi
artifact-name-suffix: arduino-avr-unowifi
serial: true
softwareserial: true
- fqbn: arduino:avr:unomini
artifact-name-suffix: arduino-avr-unomini
serial: true
softwareserial: true
# Make board type-specific customizations to the matrix jobs
include:
- board:
# Boards with Serial interface
serial: true
# Compile these sketches in addition to the ones compiled for all boards
serial-sketch-paths: |
- libraries/EEPROM/examples/eeprom_crc
- libraries/EEPROM/examples/eeprom_get
- libraries/EEPROM/examples/eeprom_put
- libraries/EEPROM/examples/eeprom_read
- libraries/SPI
- libraries/Wire
- board:
serial: false
serial-sketch-paths: ""
- board:
# Boards compatible with the SoftwareSerial library
softwareserial: true
softwareserial-sketch-paths: |
- libraries/SoftwareSerial
- board:
softwareserial: false
softwareserial-sketch-paths: ""
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Compile examples
uses: arduino/compile-sketches@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fqbn: ${{ matrix.board.fqbn }}
platforms: |
# Use Boards Manager to install the latest release of the platform to get the toolchain.
- name: arduino:avr
# Overwrite the Boards Manager installation with the platform from the repository.
- source-path: ./
name: arduino:avr
sketch-paths: |
# Compile these sketches for all boards
- libraries/EEPROM/examples/eeprom_clear
- libraries/EEPROM/examples/eeprom_iteration
- libraries/EEPROM/examples/eeprom_update
- libraries/EEPROM/examples/eeprom_write
# Board-specific sketches
${{ matrix.serial-sketch-paths }}
${{ matrix.softwareserial-sketch-paths }}
enable-deltas-report: true
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}
- name: Save sketches report as workflow artifact
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
path: ${{ env.SKETCHES_REPORTS_PATH }}
name: sketches-report-${{ matrix.board.artifact-name-suffix }}