-
-
Notifications
You must be signed in to change notification settings - Fork 39
151 lines (141 loc) · 4.95 KB
/
compile-arduino.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
name: Compile Examples
on:
push:
branches:
- master
paths:
- "src/**"
- "examples/**"
- ".github/workflows/compile-arduino.yml"
pull_request:
paths:
- "src/**"
- "examples/**"
- ".github/workflows/compile-arduino.yml"
jobs:
compile:
runs-on: ubuntu-latest
env:
UNIVERSAL_LIBRARIES: |
- source-path: ./
- name: Button
- name: SimpleRotary
- name: LiquidCrystal I2C
- name: SSD1803A_I2C
UNIVERSAL_SKETCH_PATHS: |
- examples/Basic
- examples/ButtonAdapter
- examples/Callbacks
- examples/InputRotary
- examples/KeyboardAdapter
- examples/List
- examples/SimpleRotary
- examples/SSD1803A_I2C
SKETCHES_REPORTS_PATH: sketches-reports
strategy:
fail-fast: false
matrix:
board:
# - fqbn: esp32:esp32:esp32
# type: esp32
# artifact-name-suffix: esp32-esp32-esp32
# - fqbn: arduino:avr:uno
# type: avr
# artifact-name-suffix: arduino-avr-uno
# - fqbn: esp8266:esp8266:huzzah
# type: esp8266
# artifact-name-suffix: esp8266-esp8266-huzzah
# - fqbn: arduino:samd:mkr1000
# type: mkr1000
# artifact-name-suffix: arduino-samd-mkr1000
- fqbn: STM32:stm32:GenF1
type: stm32
artifact-name-suffix: STM32-stm32-GenF1
# - fqbn: arduino:samd:nano_33_iot
# type: nina
# artifact-name-suffix: arduino-samd-nano_33_iot
# - fqbn: arduino:samd:mkrnb1500
# type: nb
# artifact-name-suffix: arduino-samd-mkrnb1500
# - fqbn: arduino:mbed_portenta:envie_m7
# type: mbed_portenta
# artifact-name-suffix: arduino-mbed_portenta-envie_m7
# - fqbn: arduino:mbed_nano:nanorp2040connect
# type: nina
# artifact-name-suffix: arduino-mbed_nano-nanorp2040connect
# - fqbn: arduino:mbed_nicla:nicla_vision
# type: mbed_nicla
# artifact-name-suffix: arduino-mbed_nicla-nicla_vision
# - fqbn: arduino:mbed_opta:opta
# type: mbed_opta
# artifact-name-suffix: arduino-mbed_opta-opta
# - fqbn: arduino:mbed_giga:giga
# type: mbed_giga
# artifact-name-suffix: arduino-mbed_giga-giga
# - fqbn: arduino:renesas_portenta:portenta_c33
# type: renesas_portenta
# artifact-name-suffix: arduino-renesas_portenta-portenta_c33
# - fqbn: arduino:renesas_uno:unor4wifi
# type: renesas_uno
# artifact-name-suffix: arduino-renesas_uno-unor4wifi
# - fqbn: arduino:mbed_edge:edge_control
# type: mbed_edge
# artifact-name-suffix: arduino-mbed_edge-edge_control
include:
# AVR boards
- board:
type: avr
platforms: |
# Install AVR platform via Boards Manager
- name: arduino:avr
libraries: |
- name: FreeRTOS
sketch-paths: |
- examples/RTOS
# ESP32 boards
- board:
type: esp32
platforms: |
# Install ESP32 platform via Boards Manager
- name: esp32:esp32
source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
libraries:
sketch-paths:
# ESP8266 boards
- board:
type: esp8266
platforms: |
# Install ESP8266 platform via Boards Manager
- name: esp8266:esp8266
source-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json
libraries:
sketch-paths:
# STM32 boards
- board:
type: stm32
platforms: |
# Install STM32 platform via Boards Manager
- name: STM32:stm32
source-url: https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/main/package_stmicroelectronics_index.json
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Compile sketches
uses: arduino/compile-sketches@v1
with:
fqbn: ${{ matrix.board.fqbn }}
platforms: ${{ matrix.platforms }}
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}
libraries: |
${{ env.UNIVERSAL_LIBRARIES }}
${{ matrix.libraries }}
sketch-paths: |
${{ env.UNIVERSAL_SKETCH_PATHS }}
${{ matrix.sketch-paths }}
enable-deltas-report: true
enable-warnings-report: true
- name: Upload sketches reports
uses: actions/upload-artifact@v4
with:
name: sketches-report-${{ matrix.board.artifact-name-suffix }}
path: ${{ env.SKETCHES_REPORTS_PATH }}