Test C6 Builds #1059
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2023 | |
# | |
# SPDX-License-Identifier: MIT | |
name: WipperSnapper Build CI | |
on: | |
workflow_dispatch: | |
pull_request: | |
workflow_call: | |
secrets: | |
GH_REPO_TOKEN: | |
required: true | |
jobs: | |
build-esp32sx-esptool: | |
name: 🏗️ESP32-Sx(lvgl) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: ["funhouse_noota"] | |
include: | |
- offset: "0x1000" | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: tyeth/ci-arduino | |
ref: WS_ARDUINO_598-preprocessor-script-for-printing-the-library-versions-to-boot_outtxt | |
path: ci | |
- name: Checkout Board Definitions | |
uses: actions/checkout@v4 | |
with: | |
repository: adafruit/Wippersnapper_Boards | |
path: ws-boards | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg | |
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library | |
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341 | |
git clone --quiet https://github.com/adafruit/Adafruit_STMPE610.git /home/runner/Arduino/libraries/Adafruit_STMPE610 | |
git clone --quiet https://github.com/adafruit/Adafruit-ST7735-Library.git /home/runner/Arduino/libraries/Adafruit-ST7735-Library | |
git clone --quiet https://github.com/adafruit/Adafruit_TouchScreen.git /home/runner/Arduino/libraries/Adafruit_TouchScreen | |
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino | |
git clone --depth 1 --branch wippersnapper https://github.com/brentru/lvgl.git /home/runner/Arduino/libraries/lvgl | |
git clone --depth 1 --branch development https://github.com/brentru/Adafruit_LvGL_Glue.git /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: List all files in Adafruit_LittlevGL_Glue_Library folder | |
run: | | |
ls /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library | |
- name: Copy lv_conf.h file in Adafruit_LittlevGL_Glue_Library to the arduino library folder | |
run: | | |
cp /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library/lv_conf.h /home/runner/Arduino/libraries | |
- name: Install Dependencies (esptool) | |
run: | | |
pip3 install esptool | |
- name: Build for ESP32-SX (esptool) | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 --include_print_dependencies_header ./src/print_dependencies.h | |
- name: list files | |
run: | | |
ls -Rla examples/ | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bin | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.elf wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.elf | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.map wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.map | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.bootloader.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin | |
- name: Get Board Flash Parameters | |
id: get_board_json | |
run: | | |
board_name=${{ matrix.arduino-platform }} | |
# Remove '_noota' suffix if present | |
board_name=${board_name%_noota} | |
# Remove 'wippersnapper_' prefix if present | |
board_name=${board_name#wippersnapper_} | |
content=$(cat ws-boards/boards/${board_name//_/-}/definition.json) | |
{ | |
echo 'boardJson<<EOF' | |
echo $content | |
echo EOF | |
} >> "$GITHUB_OUTPUT" | |
- name: Check boot_app0 file existence (esp32sx built from core, not-source) | |
id: check_files | |
uses: andstor/file-existence-action@v3 | |
with: | |
files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin" | |
- name: list arduino esp32 core files | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: | | |
ls /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions | |
- name: list arduino esp32 bsp core files | |
if: steps.check_files.outputs.files_exists == 'false' | |
run: | | |
ls /home/runner/Arduino/hardware/espressif/esp32/tools/partitions | |
- name: boot_app0 file from arduino-cli core | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: mv /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin | |
- name: boot_app0 file from esp32 source bsp | |
if: steps.check_files.outputs.files_exists == 'false' | |
run: mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin | |
- name: Create combined binary using Esptool merge_bin | |
run: | | |
echo ${{ steps.get_board_json.outputs.boardJson }} | |
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }} | |
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \ | |
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ | |
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ | |
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ | |
-o wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.combined.bin \ | |
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin \ | |
0x8000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin \ | |
0xe000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin \ | |
0x10000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bin | |
- name: Zip build artifacts | |
run: | | |
zip -r wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.* | |
- name: Upload build artifacts zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-${{ matrix.arduino-platform }}-zip | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
- name: Upload build artifact UF2 file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-${{ matrix.arduino-platform }}-uf2 | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
build-esp32sx: | |
name: 🏗️ESP32-Sx | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: | |
[ | |
"magtag", | |
"metroesp32s2", | |
"feather_esp32s2", | |
"feather_esp32s2_tft", | |
"feather_esp32s2_reverse_tft", | |
"feather_esp32s3", | |
"feather_esp32s3_4mbflash_2mbpsram", | |
"feather_esp32s3_tft", | |
"qtpy_esp32s3", | |
"qtpy_esp32s2", | |
"feather_esp32s3_reverse_tft", | |
"qtpy_esp32s3_n4r2", | |
] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: tyeth/ci-arduino | |
ref: WS_ARDUINO_598-preprocessor-script-for-printing-the-library-versions-to-boot_outtxt | |
path: ci | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg | |
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library | |
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341 | |
git clone --quiet https://github.com/adafruit/Adafruit_STMPE610.git /home/runner/Arduino/libraries/Adafruit_STMPE610 | |
git clone --quiet https://github.com/adafruit/Adafruit-ST7735-Library.git /home/runner/Arduino/libraries/Adafruit-ST7735-Library | |
git clone --quiet https://github.com/adafruit/Adafruit_TouchScreen.git /home/runner/Arduino/libraries/Adafruit_TouchScreen | |
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino | |
git clone --depth 1 --branch wippersnapper https://github.com/brentru/lvgl.git /home/runner/Arduino/libraries/lvgl | |
git clone --depth 1 --branch development https://github.com/brentru/Adafruit_LvGL_Glue.git /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: List all files in Adafruit_LittlevGL_Glue_Library folder | |
run: | | |
ls /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library | |
- name: Copy lv_conf.h file in Adafruit_LittlevGL_Glue_Library to the arduino library folder | |
run: | | |
cp /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library/lv_conf.h /home/runner/Arduino/libraries | |
- name: Build for ESP32-SX | |
run: | | |
python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 --include_print_dependencies_header ./src/print_dependencies.h | |
- name: list files (tree) | |
run: | | |
tree | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
mv examples/*/build/*/Wippersnapper_demo.ino.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin | |
- name: upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }} | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin | |
build-esp32: | |
name: 🏗️ESP32/Cx | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: | |
[ | |
"wippersnapper_feather_esp32", | |
"qtpy_esp32", | |
"feather_esp32_v2", | |
"itsybitsy_esp32", | |
"wippersnapper_qtpy_esp32c3", | |
"wippersnapper_feather_esp32c6", | |
"wippersnapper_feather_esp32c6_debug" | |
] | |
include: | |
- offset: "0x1000" | |
- offset: "0x0" | |
arduino-platform: "wippersnapper_qtpy_esp32c3" | |
- offset: "0x0" | |
arduino-platform: "wippersnapper_feather_esp32c6" | |
- offset: "0x0" | |
arduino-platform: "wippersnapper_feather_esp32c6_debug" | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: brentru/ci-arduino | |
ref: debug-c6 | |
path: ci | |
- name: Checkout Board Definitions | |
uses: actions/checkout@v4 | |
with: | |
repository: adafruit/Wippersnapper_Boards | |
path: ws-boards | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: Install Dependencies | |
run: | | |
pip3 install esptool | |
- name: build ESP32 platforms | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 | |
- name: Check artifacts | |
run: | | |
ls examples/Wippersnapper_demo/build/* | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bin | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.elf wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.elf | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.map wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.map | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.bootloader.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin | |
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin | |
- name: Check boot_app0 file existence (esp32 built from core, not-source) | |
id: check_files | |
uses: andstor/file-existence-action@v3 | |
with: | |
files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin" | |
- name: boot_app0 file from arduino-cli core | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: mv /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin | |
- name: boot_app0 file from esp32 source bsp | |
if: steps.check_files.outputs.files_exists == 'false' | |
run: mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin | |
- name: Get Board Flash Parameters | |
id: get_board_json | |
run: | | |
board_name=${{ matrix.arduino-platform }} | |
# Remove '_noota' suffix if present | |
board_name=${board_name%_noota} | |
# Remove 'wippersnapper_' prefix if present | |
board_name=${board_name#wippersnapper_} | |
content=$(cat ws-boards/boards/${board_name//_/-}/definition.json) | |
{ | |
echo 'boardJson<<EOF' | |
echo $content | |
echo EOF | |
} >> "$GITHUB_OUTPUT" | |
- name: Print matrix offset | |
run: | | |
echo "Matrix offset: ${{ matrix.offset }}" | |
- name: Create combined binary using Esptool merge_bin | |
run: | | |
echo ${{ steps.get_board_json.outputs.boardJson }} | |
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }} | |
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \ | |
--flash_mode keep \ | |
--flash_freq keep \ | |
--flash_size keep \ | |
--fill-flash-size 4MB \ | |
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \ | |
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \ | |
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \ | |
0xe000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin \ | |
0x10000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bin | |
- name: Zip build artifacts | |
run: | | |
zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.* | |
- name: upload build artifacts zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }} | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip | |
build-samd: | |
name: 🏗️SAMD | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: | |
[ | |
"pyportal_tinyusb", | |
"pyportal_titano_tinyusb", | |
"metro_m4_airliftlite_tinyusb", | |
] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: tyeth/ci-arduino | |
ref: WS_ARDUINO_598-preprocessor-script-for-printing-the-library-versions-to-boot_outtxt | |
path: ci | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
# manually install Adafruit WiFiNINA library fork | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire | |
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: build SAMD platforms | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 --include_print_dependencies_header ./src/print_dependencies.h | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
mv examples/*/build/*/Wippersnapper_demo.ino.hex wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.hex | |
- name: upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }} | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.hex | |
build-rp2040: | |
name: 🏗️RP2040 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: ["picow_rp2040_tinyusb"] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: tyeth/ci-arduino | |
ref: WS_ARDUINO_598-preprocessor-script-for-printing-the-library-versions-to-boot_outtxt | |
path: ci | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
# manually install OneWireNG/TempControlLib for OneWireNg (RP2040 Supported OneWire w/backwards compat.) | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg | |
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: build RP2040 platforms | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 --include_print_dependencies_header ./src/print_dependencies.h | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
- name: upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }} | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
# NOTE: This does NOT release artifacts, it only builds | |
build-samd-non-fs: | |
name: 🏗️SAMD🚫⧾🔱 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: ["mkrwifi1010", "nano_33_iot"] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: tyeth/ci-arduino | |
ref: WS_ARDUINO_598-preprocessor-script-for-printing-the-library-versions-to-boot_outtxt | |
path: ci | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/arduino-libraries/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA | |
git clone --quiet https://github.com/arduino-libraries/Servo.git /home/runner/Arduino/libraries/Servo | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: build SAMD (no-FS) platforms | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 --include_print_dependencies_header ./src/print_dependencies.h | |
build-esp8266: | |
name: 🏗️ESP8266 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: ["feather_esp8266"] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: tyeth/ci-arduino | |
ref: WS_ARDUINO_598-preprocessor-script-for-printing-the-library-versions-to-boot_outtxt | |
path: ci | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
- name: Install extra Arduino library | |
run: | | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: build ESP8266 platforms | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 --include_print_dependencies_header ./src/print_dependencies.h | |
- name: list build artifacts | |
run: | | |
ls | |
ls examples/* | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/*/build/*/Wippersnapper_demo.ino.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bin | |
mv examples/*/build/*/Wippersnapper_demo.ino.elf wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.elf | |
mv examples/*/build/*/Wippersnapper_demo.ino.map wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.map | |
- name: Zip build artifacts | |
run: | | |
zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.* | |
- name: upload build artifacts zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }} | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip | |
build-esp32sx-dev: | |
name: 🏗️ESP32-Sx(DEV) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: | |
[ | |
"feather_esp32s2_debug", | |
"feather_esp32s2_tft_debug", | |
"feather_esp32s3_debug", | |
"feather_esp32s3_4mbflash_2mbpsram_debug", | |
"feather_esp32s3_tft_debug", | |
"wippersnapper_feather_esp32s3_reverse_tft_debug", | |
] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: tyeth/ci-arduino | |
ref: WS_ARDUINO_598-preprocessor-script-for-printing-the-library-versions-to-boot_outtxt | |
path: ci | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg | |
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library | |
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341 | |
git clone --quiet https://github.com/adafruit/Adafruit_STMPE610.git /home/runner/Arduino/libraries/Adafruit_STMPE610 | |
git clone --quiet https://github.com/adafruit/Adafruit-ST7735-Library.git /home/runner/Arduino/libraries/Adafruit-ST7735-Library | |
git clone --quiet https://github.com/adafruit/Adafruit_TouchScreen.git /home/runner/Arduino/libraries/Adafruit_TouchScreen | |
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino | |
git clone --depth 1 --branch wippersnapper https://github.com/brentru/lvgl.git /home/runner/Arduino/libraries/lvgl | |
git clone --depth 1 --branch development https://github.com/brentru/Adafruit_LvGL_Glue.git /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: List all files in Adafruit_LittlevGL_Glue_Library folder | |
run: | | |
ls /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library | |
- name: Copy lv_conf.h file in Adafruit_LittlevGL_Glue_Library to the arduino library folder | |
run: | | |
cp /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library/lv_conf.h /home/runner/Arduino/libraries | |
- name: Build for ESP32-SX | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 --include_print_dependencies_header ./src/print_dependencies.h | |
- name: list | |
run: | | |
ls | |
ls -R examples/*/build/ | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/*/build/*/wippersnapper_debug.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
mv examples/*/build/*/wippersnapper_debug.ino.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin | |
- name: upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-dev-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }} | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 | |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin | |
build-esp32-dev: | |
name: 🏗️ESP32/Cx(DEV) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arduino-platform: | |
[ | |
"wippersnapper_feather_esp32c6_debug", | |
] | |
include: | |
- offset: "0x1000" | |
- offset: "0x0" | |
arduino-platform: "wippersnapper_feather_esp32c6_debug" | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- name: Get WipperSnapper version | |
run: | | |
git fetch --prune --unshallow --tags | |
git describe --dirty --tags | |
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags) | |
- uses: actions/checkout@v4 | |
with: | |
repository: adafruit/ci-arduino | |
path: ci | |
ref: ci-wippersnapper | |
- name: Checkout Board Definitions | |
uses: actions/checkout@v4 | |
with: | |
repository: adafruit/Wippersnapper_Boards | |
path: ws-boards | |
- name: Install CI-Arduino | |
run: bash ci/actions_install.sh | |
- name: Install extra Arduino libraries | |
run: | | |
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library | |
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg | |
- name: Download and install stable Nanopb | |
run: | | |
# Download and extract nanopb | |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz | |
tar -xf nanopb-0.4.8.tar.gz | |
# Copy files to WipperSnapper's src/nanopb directory | |
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb | |
mv nanopb/pb.h src/nanopb/nanopb.pb.h | |
- name: Install Dependencies | |
run: | | |
pip3 install esptool | |
- name: build ESP32 platforms | |
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 | |
- name: Check artifacts | |
run: | | |
ls examples/wippersnapper_debug/build/* | |
- name: Rename build artifacts to reflect the platform name | |
run: | | |
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bin | |
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.elf wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.elf | |
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.map wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.map | |
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.bootloader.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin | |
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin | |
- name: Check boot_app0 file existence (esp32 built from core, not-source) | |
id: check_files | |
uses: andstor/file-existence-action@v3 | |
with: | |
files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin" | |
- name: boot_app0 file from arduino-cli core | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: mv /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin | |
- name: boot_app0 file from esp32 source bsp | |
if: steps.check_files.outputs.files_exists == 'false' | |
run: mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin | |
- name: Get Board Flash Parameters | |
id: get_board_json | |
run: | | |
board_name=${{ matrix.arduino-platform }} | |
# Remove '_noota' suffix if present | |
board_name=${board_name%_noota} | |
# Remove '_debug' suffix if present | |
board_name=${board_name%_debug} | |
# Remove 'wippersnapper_' prefix if present | |
board_name=${board_name#wippersnapper_} | |
content=$(cat ws-boards/boards/${board_name//_/-}/definition.json) | |
{ | |
echo 'boardJson<<EOF' | |
echo $content | |
echo EOF | |
} >> "$GITHUB_OUTPUT" | |
- name: Create combined binary using Esptool merge_bin | |
run: | | |
echo ${{ steps.get_board_json.outputs.boardJson }} | |
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }} | |
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \ | |
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ | |
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ | |
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ | |
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \ | |
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \ | |
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \ | |
0xe000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin \ | |
0x10000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bin | |
- name: Zip build artifacts | |
run: | | |
zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.* | |
- name: upload build artifacts zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-files-dev-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }} | |
path: | | |
wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip | |
merge-job-build-files: | |
name: Merge Artifacts for build-files | |
runs-on: ubuntu-latest | |
needs: [build-esp32sx-esptool, build-esp32sx, build-esp32, build-esp8266, build-samd, build-rp2040, build-samd-non-fs] | |
steps: | |
- name: Merge Artifacts from Builds | |
uses: actions/upload-artifact/merge@v4 | |
with: | |
name: build-files | |
pattern: build-files-!(dev)-* | |
delete-merged: true | |
merge-job2: | |
name: Merge Artifacts for build-files-dev | |
runs-on: ubuntu-latest | |
needs: [build-esp32sx-dev, build-esp32-dev] | |
steps: | |
- name: Merge Artifacts from Dev Builds | |
uses: actions/upload-artifact/merge@v4 | |
with: | |
name: build-files-dev | |
pattern: build-files-dev-* | |
delete-merged: true | |
clang_and_doxy: | |
name: 🔎Clang & Doxygen | |
runs-on: ubuntu-latest | |
needs: | |
[ | |
build-samd, | |
build-esp32, | |
build-esp32sx, | |
build-esp8266, | |
build-samd-non-fs, | |
build-rp2040, | |
] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- uses: actions/checkout@v4 | |
- uses: actions/checkout@v4 | |
with: | |
repository: adafruit/ci-arduino | |
path: ci | |
- name: pre-install | |
run: bash ci/actions_install.sh | |
- name: clang | |
run: python3 ci/run-clang-format.py -r -e "ci/*" -e "bin/*" -e src/nanopb -e src/wippersnapper -e src/pb.h -e src/provisioning/tinyusb src/ | |
- name: doxygen | |
env: | |
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }} | |
PRETTYNAME: "Adafruit.io WipperSnapper Library" | |
run: bash ci/doxy_gen_and_deploy.sh |