-
Notifications
You must be signed in to change notification settings - Fork 2
156 lines (146 loc) · 5.7 KB
/
compile-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
name: Compile Examples
on:
pull_request:
paths:
- ".github/workflows/compile-examples.yml"
- "library.properties"
- "examples/**"
- "src/**"
push:
paths:
- ".github/workflows/compile-examples.yml"
- "library.properties"
- "examples/**"
- "src/**"
# Scheduled trigger checks for breakage caused by changes to external resources (libraries, platforms)
schedule:
# run every Saturday at 3 AM UTC
- cron: "0 3 * * 6"
# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#workflow_dispatch
workflow_dispatch:
# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#repository_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:samd:mkr1000"
artifact-name-suffix: arduino-samd-mkr1000
platform-name: arduino:samd
- fqbn: "arduino:samd:mkrwifi1010"
artifact-name-suffix: arduino-samd-mkrwifi1010
platform-name: arduino:samd
- fqbn: "arduino:samd:nano_33_iot"
artifact-name-suffix: arduino-samd-nano_33_iot
platform-name: arduino:samd
- fqbn: arduino:samd:mkrwan1300
artifact-name-suffix: arduino-samd-mkrwan1300
platform-name: arduino:samd
- fqbn: "arduino:samd:mkrgsm1400"
artifact-name-suffix: arduino-samd-mkrgsm1400
platform-name: arduino:samd
- fqbn: "arduino:samd:mkrnb1500"
artifact-name-suffix: arduino-samd-mkrnb1500
platform-name: arduino:samd
- fqbn: "arduino:mbed_portenta:envie_m7"
artifact-name-suffix: arduino-mbed_portenta-envie_m7
platform-name: arduino:mbed_portenta
- fqbn: arduino:mbed_nano:nanorp2040connect
artifact-name-suffix: arduino-mbed_nano-nanorp2040connect
platform-name: arduino:mbed_nano
- fqbn: arduino:mbed_nicla:nicla_vision
artifact-name-suffix: arduino-mbed_nicla-nicla_vision
platform-name: arduino:mbed_nicla
- fqbn: arduino:mbed_opta:opta
artifact-name-suffix: arduino-mbed_opta-opta
platform-name: arduino:mbed_opta
- fqbn: arduino:mbed_giga:giga
artifact-name-suffix: arduino-mbed_giga-giga
platform-name: arduino:mbed_giga
- fqbn: arduino:renesas_portenta:portenta_c33
artifact-name-suffix: arduino-renesas_portenta-portenta_c33
platform-name: arduino:renesas_portenta
- fqbn: arduino:renesas_uno:unor4wifi
artifact-name-suffix: arduino-renesas_uno-unor4wifi
platform-name: arduino:renesas_uno
include:
- board:
platform-name: arduino:samd
platforms: |
# Install Arduino SAMD Boards via Boards Manager
- name: arduino:samd
libraries: |
- name: ArduinoECCX08
- board:
platform-name: arduino:mbed_portenta
platforms: |
# Install Arduino mbed_portenta Boards via Boards Manager
- name: arduino:mbed_portenta
libraries: |
- name: ArduinoECCX08
- board:
platform-name: arduino:mbed_nano
platforms: |
# Install Arduino mbed_nano Boards via Boards Manager
- name: arduino:mbed_nano
libraries: |
- name: ArduinoECCX08
- board:
platform-name: arduino:mbed_nicla
platforms: |
# Install Arduino mbed_nano Boards via Boards Manager
- name: arduino:mbed_nicla
- board:
platform-name: arduino:mbed_opta
platforms: |
# Install Arduino mbed_opta Boards via Boards Manager
- name: arduino:mbed_opta
libraries: |
- name: ArduinoECCX08
- board:
platform-name: arduino:mbed_giga
platforms: |
# Install Arduino mbed_giga Boards via Boards Manager
- name: arduino:mbed_giga
libraries: |
- name: ArduinoECCX08
- board:
platform-name: arduino:renesas_portenta
platforms: |
# Install Arduino renesas_portenta Boards via Boards Manager
- name: arduino:renesas_portenta
- board:
platform-name: arduino:renesas_uno
platforms: |
# Install Arduino renesas_uno Boards via Boards Manager
- name: arduino:renesas_uno
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install ESP32 platform dependencies
if: matrix.board.platform-name == 'esp32'
run: pip3 install pyserial
- name: Compile examples
uses: arduino/compile-sketches@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
platforms: ${{ matrix.platforms }}
fqbn: ${{ matrix.board.fqbn }}
libraries: |
# Install the library from the local path.
- source-path: ./
${{ matrix.libraries }}
enable-deltas-report: true
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}
- name: Save memory usage change report as artifact
uses: actions/upload-artifact@v4
with:
name: sketches-report-${{ matrix.board.artifact-name-suffix }}
if-no-files-found: error
path: ${{ env.SKETCHES_REPORTS_PATH }}