Skip to content

Commit

Permalink
Add 'compile' workflow and badge
Browse files Browse the repository at this point in the history
  • Loading branch information
0xCAFEDECAF committed Oct 1, 2024
1 parent 5b7a7d7 commit c2553aa
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/compile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
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"
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"
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 }} ./examples/VanBusDump
arduino-cli compile --fqbn ${{ matrix.fqbn }} ./examples/PacketParser
arduino-cli compile --fqbn ${{ matrix.fqbn }} ./examples/LiveWebPage
arduino-cli compile --fqbn ${{ matrix.fqbn }} ./examples/SendPacket
arduino-cli compile --fqbn ${{ matrix.fqbn }} ./examples/DisplayNotifications
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

[![Framework](https://img.shields.io/badge/Framework-Arduino-blue)](https://www.arduino.cc/)

[![Compile Library and Build Example Sketches](https://github.com/0xCAFEDECAF/VanBusTest/actions/workflows/compile.yml/badge.svg)](https://github.com/0xCAFEDECAF/VanBusTest/actions/workflows/compile.yml)

## 📝 Table of Contents
- [Description](#description)
- [Schematics](#schematics)
Expand Down

0 comments on commit c2553aa

Please sign in to comment.