-
Notifications
You must be signed in to change notification settings - Fork 7
68 lines (60 loc) · 3.36 KB
/
compile.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
name: Compile Library and Build Example Sketches
# The workflow will run on every push and pull request to the repository
on:
- push
- pull_request
jobs:
compile-sketch:
runs-on: ubuntu-latest
# Here we tell GitHub that the jobs must be determined
# dynamically depending on a matrix configuration.
strategy:
matrix:
# The matrix will produce one job for each configuration
# parameter of type `arduino-platform`, in this case a
# total of 2.
arduino-platform: ["esp8266:esp8266", "esp32:[email protected]"]
# This is usually optional but we need to statically define the
# FQBN of the boards we want to test for each platform. In the
# future the CLI might automatically detect and download the core
# needed to compile against a certain FQBN, at that point the
# following 'Install platform' section will be useless.
include:
# This works like this: when the platform is "esp8266:esp8266", the
# variable `fqbn` is set to "esp8266:esp8266:d1_mini".
- arduino-platform: "esp8266:esp8266"
url: "https://arduino.esp8266.com/stable/package_esp8266com_index.json"
fqbn: "esp8266:esp8266:d1_mini"
board-options: "xtal=160,ssl=basic,mmu=3232,non32xfer=fast,eesz=4M1M,ip=hb2n"
websockets-library-version: "WebSockets" # We can install latest
- arduino-platform: "esp32:[email protected]"
url: "https://dl.espressif.com/dl/package_esp32_index.json"
fqbn: "esp32:esp32:esp32"
board-options: "CPUFreq=240,FlashFreq=80,FlashSize=4M,PartitionScheme=default,DebugLevel=none"
websockets-library-version: "[email protected]" # On esp32:[email protected] we cannot go beyond version 2.4.0
steps:
# This step makes the contents of the repository available to the workflow.
- name: Checkout repository
uses: actions/checkout@v4
# We use the `arduino/setup-arduino-cli` action to install and
# configure the Arduino CLI on the system.
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v2
# We then install the platform, which one will be determined
# dynamically by the build matrix.
- name: Install platform
run: |
arduino-cli core install ${{ matrix.arduino-platform }} --additional-urls ${{ matrix.url }}
# Install the required libraries.
- name: Install libraries
run: |
arduino-cli lib install VanBus ${{ matrix.websockets-library-version }}
# Finally, we compile the sketches, using the FQBN that was set
# in the build matrix.
- name: Compile example sketches
run: |
arduino-cli compile --fqbn ${{ matrix.fqbn }} --board-options ${{ matrix.board-options }} --warnings all ./examples/VanBusDump
arduino-cli compile --fqbn ${{ matrix.fqbn }} --board-options ${{ matrix.board-options }} --warnings all ./examples/PacketParser
arduino-cli compile --fqbn ${{ matrix.fqbn }} --board-options ${{ matrix.board-options }} --warnings all ./examples/LiveWebPage
arduino-cli compile --fqbn ${{ matrix.fqbn }} --board-options ${{ matrix.board-options }} --warnings all ./examples/SendPacket
arduino-cli compile --fqbn ${{ matrix.fqbn }} --board-options ${{ matrix.board-options }} --warnings all ./examples/DisplayNotifications