Add platformio.ini with three envs matching targets.csv: arduino-esp32 2.0.2 (default), 2.0.7 and 1.0.6 (legacy). Dependencies pinned: ML_SynthTools v1.1.0 (zip, avoids git client requirement), Adafruit SSD1306/GFX/BusIO as listed in doc/board_info.md. Keeps the .ino sketch layout so the project still builds with the Arduino IDE. Disable OLED_OSC_DISP_ENABLED to match upstream: the functions ScopeOled_Process/ScopeOled_AddSamples are not implemented in any released ML_SynthTools, so the flag cannot link. The scope display will be handled by an external ESP32-BOX-3 instead. Add PlatformIO build job to CI and ignore .pio artifacts. Verified: pio run -e esp32_audio_kit_es8388 -> SUCCESS (flash 54.3 percent, RAM 12.5 percent).
45 lines
1021 B
YAML
45 lines
1021 B
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main, master]
|
|
pull_request:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
sanity:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Sanity
|
|
run: |
|
|
test -f README.md || test -f Readme.md || test -f readme.md || test -f README
|
|
echo "Repository sanity OK"
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Cache PlatformIO
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.platformio
|
|
.pio
|
|
key: pio-${{ runner.os }}-${{ hashFiles('platformio.ini') }}
|
|
- name: Install PlatformIO
|
|
run: pip install platformio
|
|
- name: Build (arduino-esp32 2.0.2)
|
|
run: pio run -e esp32_audio_kit_es8388
|