Skip to content

Commit 9e6b35b

Browse files
authored
Merge pull request #81 from giulcioffi/CIworkflow
Add CI workflows
2 parents c8a1dd9 + 0eb5c64 commit 9e6b35b

File tree

2 files changed

+165
-0
lines changed

2 files changed

+165
-0
lines changed

Diff for: .github/workflows/compile-examples.yml

+152
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
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

Diff for: .github/workflows/report-size-deltas.yml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Report PR Size Deltas
2+
3+
on:
4+
schedule:
5+
- cron: '*/5 * * * *'
6+
7+
jobs:
8+
report:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Comment size deltas reports to PRs
13+
uses: arduino/actions/libraries/report-size-deltas@master

0 commit comments

Comments
 (0)