Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6bcf101
ci: add a CI to ensure Arduino library manager compliance
jcelerier Dec 29, 2025
b7aa198
updated yml to compile sketch for specific boards
cbicari Dec 30, 2025
ff31bbe
added export path for arduino CLI
cbicari Dec 30, 2025
0816796
modded export path for arduino CLI
cbicari Dec 30, 2025
0938c39
trialing action for arduino-esp32 board install of dependencies -1
cbicari Dec 30, 2025
f0166cd
trialing action for arduino-esp32 board install of dependencies -2
cbicari Dec 30, 2025
0c95fea
trialing action for arduino-esp32 board install of dependencies -3
cbicari Dec 30, 2025
b29a487
trialing action for arduino-esp32 board install of dependencies -4
cbicari Dec 30, 2025
1728f64
Update library.properties
jcelerier Dec 31, 2025
6b49587
trialing CI sketch test
cbicari Jan 2, 2026
e4366a8
ci: add an action that will try to build & run the templates with the…
jcelerier Dec 29, 2025
148bbc5
trialing CI sketch test -1
cbicari Jan 2, 2026
791ba3f
trialing CI sketch test -2
cbicari Jan 2, 2026
3d11650
trialing CI sketch test // correcting board names
cbicari Jan 2, 2026
527322e
trialing CI sketch test // correcting board names -1
cbicari Jan 2, 2026
8b949e2
trialing CI sketch test // lib dependency
cbicari Jan 2, 2026
fcc1b90
added two boards to match platformio test boards
cbicari Jan 2, 2026
16bc1ea
added buil-property flags
cbicari Jan 2, 2026
8068c36
all build flags are as configs should be with minimal spiffs
cbicari Jan 2, 2026
38170a5
all build flags are as configs should be with minimal spiffs -2
cbicari Jan 2, 2026
194afb4
all build flags are as configs should be with minimal spiffs -3
cbicari Jan 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/arduino.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Puara-Module Arduino Example CI
on: [push, pull_request]
jobs:
lint: # Step 1 : Check if repository comformity to Arduino Library standards
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: arduino/arduino-lint-action@v2
with:
project-type: library
compliance: strict
library-manager: submit

compile: # Step 2: Compile Examples for Multiple Boards
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Arduino CLI
run: |
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
export PATH="/home/runner/work/puara-module/puara-module/bin:$PATH"
echo "/home/runner/work/puara-module/puara-module/bin" >> $GITHUB_PATH
arduino-cli version
arduino-cli config init
arduino-cli core update-index

# Install Board Cores
- name: Install ESP32 Core
run: |
arduino-cli core install esp32:esp32

# Install Library Dependencies
- name: Install Library Dependencies
run: |
arduino-cli lib list
mkdir -p $HOME/Arduino/libraries
ln -s $PWD $HOME/Arduino/libraries/puara
arduino-cli lib list

# Compile Example Sketches for Tinypico
- name: Compile for TinyPICO
run: |
arduino-cli compile --fqbn esp32:esp32:um_tinypico --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 examples/puara_basic_template/puara_basic_template.ino

# Compile Example Sketches for Xiao ESP32-S3
- name: Compile for XIAO ESP32-S3
run: |
arduino-cli compile --fqbn esp32:esp32:XIAO_ESP32S3 --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 examples/puara_basic_template/puara_basic_template.ino

# Compile Example Sketches for
- name: Compile for M5StickC
run: |
arduino-cli compile --fqbn esp32:esp32:m5stack_stickc --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 examples/puara_basic_template/puara_basic_template.ino

# Compile Example Sketches for Xiao ESP32-S3
- name: Compile for ESP32C3 Dev Module
run: |
arduino-cli compile --fqbn esp32:esp32:esp32c3 --build-property build.partitions=min_spiffs --build-property upload.maximum_size=1966080 examples/puara_basic_template/puara_basic_template.ino

# to see all available boards, run the following command in a terminal : $ arduino-cli board listall esp32:esp32

102 changes: 102 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Build
on: [push, pull_request]

jobs:
build:
name: ${{ matrix.template.name }}-${{ matrix.template.fs }}-${{ matrix.environment.name }}
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
# we have 6 pio templates, which we want to build for 4 different boards
# we have two filesystems we want to test on boards that support them
template:
- name: basic
fs: littlefs
- name: basic
fs: spiffs
- name: basic-gestures
fs: littlefs
- name: basic-gestures
fs: spiffs
- name: basic-osc
fs: littlefs
- name: basic-osc
fs: spiffs
- name: button-osc
fs: littlefs
- name: button-osc
fs: spiffs
- name: libmapper-osc
fs: littlefs
- name: libmapper-osc
fs: spiffs
- name: ble-advertising
fs: littlefs
- name: ble-advertising
fs: spiffs
environment:
- name: xiao_esp32s3
board: seeed_xiao_esp32s3
extra_flags: "-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue"
- name: tinypico
board: tinypico
extra_flags: "-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue"
- name: m5stick-c
board: m5stick-c
extra_flags: "-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue"
- name: ESP32-C3
board: esp32-c3-devkitc-02
extra_flags: "-DBOARD_HAS_PSRAM"

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: Puara/puara-module-templates
path: templates
ref: main

- uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio

- uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install PlatformIO Core
run: pip install --upgrade platformio

- name: Create Template Folders and add board ID for each template
run: |
cd templates
cp -r ${{ matrix.template.name }} ./${{ matrix.template.name }}-${{ matrix.template.fs }}

# Add board ID to wokwi.toml file
echo "[board]" >> .//${{ matrix.template.name }}-${{ matrix.template.fs }}/wokwi.toml
echo "id = \"${{ matrix.environment.board }}\"" >> .//${{ matrix.template.name }}-${{ matrix.template.fs }}/wokwi.toml

# The boards and templates each have different requirements, so the platformio.ini file is different for each.
# The platformio.ini files that are in each template may select only one board to be built -- so here we generate
# a temporary platformio.ini file for each template/board combination to ensure the pipeline tests them all.
- name: Generate Temporary platformio.ini
run: |
export PUARA_MODULE_PATH="symlink://$PWD/"
cd templates
bash scripts/generate-platformio.ini.sh \
${{ matrix.template.name }}-${{ matrix.template.fs }} \
${{ matrix.environment.board }} \
"${{ matrix.environment.extra_flags }}"

# Build using the temporary platformio.ini file
- name: Build
run: |
cd templates
cd ./${{ matrix.template.name }}-${{ matrix.template.fs }}
pio settings set force_verbose 1
pio run --environment template --project-conf platformioTemp.ini
6 changes: 3 additions & 3 deletions library.properties
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name=puara module
name=puara-module
version=1.0.0
author=Edu
author=Edu_Meneses
maintainer=Edu <[email protected]>, SAT <[email protected]>
sentence=esp32 DMI helpers
paragraph=This library provides helper modules for ESP32-based music controllers using the Puara framework. It includes a Wi-Fi manager for easy network setup, an OSC manager for Open Sound Control messaging, and compatibility with libmapper for device mapping. Designed to simplify development of digital musical instruments and controllers.
category=Uncategorized
category=Device Control
url=https://github.com/Puara/puara-module
architectures=*
4 changes: 4 additions & 0 deletions src/puara-module.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#pragma once
#include <puara.h>

// This header satisfies arduino library lint LS008