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/SPI
31
+ - libraries/SoftwareSerial
32
+ - libraries/EEPROM
33
+ - ~/Arduino/libraries/Servo/examples
34
+ - ~/Arduino/libraries/LiquidCrystal/examples
35
+ - ~/Arduino/libraries/MFRC522/examples
36
+ - ~/Arduino/libraries/Ethernet/examples
37
+ - ~/Arduino/libraries/Adafruit_MQTT_Library/examples/mqtt_ethernet
38
+ - ~/Arduino/libraries/ArduinoBearSSL/examples/SHA1
39
+ - ~/Arduino/libraries/ArduinoBearSSL/examples/SHA256
40
+ - ~/Arduino/libraries/Arduino_LSM9DS1/examples
41
+ - ~/Arduino/libraries/SD/examples
42
+ - ~/Arduino/libraries/Arduino_JSON/examples
43
+ - ~/Arduino/libraries/TFT/examples/Arduino/TFTBitmapLogo
44
+ - ~/Arduino/libraries/TFT/examples/Arduino/TFTColorPicker
45
+ - ~/Arduino/libraries/TFT/examples/Arduino/TFTDisplayText
46
+ - ~/Arduino/libraries/TFT/examples/Arduino/TFTEtchASketch
47
+ - ~/Arduino/libraries/TFT/examples/Arduino/TFTGraph
48
+ - ~/Arduino/libraries/TFT/examples/Arduino/TFTPong
49
+ - ~/Arduino/libraries/Arduino_CRC32/examples
50
+ - ~/Arduino/libraries/Arduino_LSM6DS3/examples
51
+ - ~/Arduino/libraries/Stepper/examples
52
+ - ~/Arduino/libraries/Arduino_HTS221/examples
53
+ - ~/Arduino/libraries/Arduino_DebugUtils/examples
54
+ - ~/Arduino/libraries/Arduino_LPS22HB/examples
55
+ - ~/Arduino/libraries/ArduinoDMX/examples
56
+ - ~/Arduino/libraries/ArduinoRS485/examples
57
+
58
+ strategy :
59
+ fail-fast : false
60
+
61
+ matrix :
62
+ board : [
63
+ {"fqbn": "arduino:megaavr:uno2018:mode=on", "type": "UnoWiFiRev2"},
64
+ {"fqbn": "arduino:megaavr:uno2018:mode=off", "type": "UnoWiFiRev2"},
65
+ {"fqbn": "arduino:megaavr:nona4809", "type": "NanoEvery"}
66
+ ]
67
+
68
+ # make board type-specific customizations to the matrix jobs
69
+ include :
70
+ # Uno WiFi Rev2
71
+ - board :
72
+ type : " UnoWiFiRev2"
73
+ additional-sketch-paths : |
74
+ - ~/Arduino/libraries/WiFiNINA/examples
75
+ - ~/Arduino/libraries/ArduinoMqttClient/examples
76
+ - ~/Arduino/libraries/Arduino_OAuth/examples/Tweeter
77
+ # Nano Every
78
+ - board :
79
+ type : " NanoEvery"
80
+ additional-sketch-paths :
81
+
82
+ steps :
83
+ - name : Checkout repository
84
+ uses : actions/checkout@v2
85
+
86
+ # 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
87
+ - name : Checkout ArduinoCore-API
88
+ uses : actions/checkout@v2
89
+ with :
90
+ repository : arduino/ArduinoCore-API
91
+ path : extras/ArduinoCore-API
92
+
93
+ - name : Install ArduinoCore-API
94
+ run : mv "$GITHUB_WORKSPACE/extras/ArduinoCore-API/api" "$GITHUB_WORKSPACE/cores/arduino"
95
+
96
+ - name : Checkout Basic examples
97
+ uses : actions/checkout@v2
98
+ with :
99
+ repository : arduino/arduino-examples
100
+ path : extras
101
+
102
+ - name : Delete incompatible examples
103
+ run : |
104
+ # These boards do not support native USB
105
+ rm -r "$GITHUB_WORKSPACE/extras/examples/09.USB"
106
+ # The next command can be removed after the core integration with ArduinoCore-API
107
+ rm -r "$GITHUB_WORKSPACE/extras/examples/10.StarterKit_BasicKit/p11_CrystalBall"
108
+ # CapacitiveSensor library does not support megaAVR core yet
109
+ rm -r "$GITHUB_WORKSPACE/extras/examples/10.StarterKit_BasicKit/p13_TouchSensorLamp"
110
+ - name : Compile examples
111
+ uses : arduino/actions/libraries/compile-examples@master
112
+ with :
113
+ fqbn : ${{ matrix.board.fqbn }}
114
+ libraries : |
115
+ - name: Adafruit MQTT Library
116
+ - name: Servo
117
+ - name: LiquidCrystal
118
+ - name: MFRC522
119
+ - name: Ethernet
120
+ - name: ArduinoBearSSL
121
+ - name: Arduino_LSM9DS1
122
+ - name: TFT
123
+ - name: ArduinoMqttClient
124
+ - name: Arduino_CRC32
125
+ - name: Arduino_LSM6DS3
126
+ - name: Stepper
127
+ - name: SD
128
+ - name: Arduino_JSON
129
+ - name: Arduino_HTS221
130
+ - name: Arduino_DebugUtils
131
+ - name: Arduino_LPS22HB
132
+ - name: ArduinoDMX
133
+ - name: ArduinoRS485
134
+ - name: Arduino_OAuth
135
+ - name: WiFiNINA
136
+ platforms : |
137
+ # Use Board Manager to install the latest release of Arduino megaAVR Boards to get the toolchain
138
+ - name: "arduino:megaavr"
139
+ # Overwrite the Board Manager installation with the local platform
140
+ - source-path: "./"
141
+ name: "arduino:megaavr"
142
+ sketch-paths : |
143
+ ${{ env.UNIVERSAL_SKETCH_PATHS }}
144
+ ${{ matrix.additional-sketch-paths }}
145
+ enable-deltas-report : ' true'
146
+ verbose : ' true'
147
+
148
+ - name : Save memory usage change report as artifact
149
+ uses : actions/upload-artifact@v1
150
+ with :
151
+ name : size-deltas-reports
152
+ path : size-deltas-reports
0 commit comments