mirror of
https://github.com/rstrouse/ESPSomfy-RTS.git
synced 2026-03-30 08:52:11 +02:00
update CI build scripts
This commit is contained in:
parent
d0d903d55c
commit
07e2e45333
3 changed files with 72 additions and 317 deletions
144
.github/workflows/ci.yaml
vendored
144
.github/workflows/ci.yaml
vendored
|
|
@ -2,150 +2,44 @@ name: ESPSomfy-RTS
|
|||
|
||||
on: [push, pull_request]
|
||||
|
||||
env:
|
||||
ARDUINO_BOARD_MANAGER_ADDITIONAL_URLS: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json"
|
||||
ARDUINO_CLI_VERSION: "0.x"
|
||||
ARDUINO_ESP32_VERSION: "2.0.10"
|
||||
ARDUINO_JSON_VERSION: "6.21.3"
|
||||
ESPTOOL_VERSION: "4.6"
|
||||
LITTLEFS_VERSION: "v2.5.1"
|
||||
MKLITTLEFS_VERSION: "3.1.0"
|
||||
PUB_SUB_CLIENT_VERSION: "2.8.0"
|
||||
PYTHON_VERSION: "3.10"
|
||||
SMARTRC_CC1101_VERSION: "2.5.7"
|
||||
WEB_SOCKET_VERSION: "2.4.0"
|
||||
|
||||
jobs:
|
||||
littlefs:
|
||||
name: LittleFS
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Checkout mklittlefs
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: earlephilhower/mklittlefs
|
||||
path: mklittlefs
|
||||
ref: ${{ env.MKLITTLEFS_VERSION }}
|
||||
|
||||
- name: Checkout LittleFS
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: littlefs-project/littlefs
|
||||
path: mklittlefs/littlefs
|
||||
ref: ${{ env.LITTLEFS_VERSION }}
|
||||
|
||||
- name: Build mklittlefs
|
||||
run: |
|
||||
make -C mklittlefs
|
||||
|
||||
- name: Create LittleFS
|
||||
run: |
|
||||
./mklittlefs/mklittlefs --create data --size 1441792 SomfyController.littlefs.bin
|
||||
|
||||
- name: Upload binaries
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: LittleFS
|
||||
path: SomfyController.littlefs.bin
|
||||
retention-days: 5
|
||||
|
||||
arduino:
|
||||
build:
|
||||
name: ${{ matrix.name }}
|
||||
needs: [littlefs]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- board: esp32
|
||||
addr_bootloader: 0x1000
|
||||
chip: ESP32
|
||||
fqbn: esp32:esp32:esp32
|
||||
- env: esp32dev
|
||||
name: ESP32
|
||||
- board: lolin_c3_mini
|
||||
addr_bootloader: 0x0
|
||||
chip: ESP32-C3
|
||||
fqbn: esp32:esp32:lolin_c3_mini
|
||||
name: LOLIN-C3-mini
|
||||
- board: lolin_s2_mini
|
||||
addr_bootloader: 0x1000
|
||||
chip: ESP32-S2
|
||||
fqbn: esp32:esp32:lolin_s2_mini
|
||||
name: LOLIN-S2-mini
|
||||
- board: lolin_s3_mini
|
||||
addr_bootloader: 0x0
|
||||
chip: ESP32-S3
|
||||
fqbn: esp32:esp32:lolin_s3_mini
|
||||
name: LOLIN-S3-mini
|
||||
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
path: SomfyController
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Get LittleFS
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: LittleFS
|
||||
|
||||
- name: Install Python ${{ env.PYTHON_VERSION }}
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
|
||||
- name: Upgrade pip
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip --version
|
||||
|
||||
- name: Install ESPTool
|
||||
run: |
|
||||
pip install esptool==${{ env.ESPTOOL_VERSION }}
|
||||
|
||||
- name: Install Arduino CLI
|
||||
uses: arduino/setup-arduino-cli@v1
|
||||
with:
|
||||
version: ${{ env.ARDUINO_CLI_VERSION }}
|
||||
|
||||
- name: Configure Arduino CLI
|
||||
run: |
|
||||
arduino-cli core update-index
|
||||
arduino-cli core install esp32:esp32@${{ env.ARDUINO_ESP32_VERSION }}
|
||||
|
||||
- name: Configure Arduino Libraries
|
||||
run: |
|
||||
arduino-cli lib install ArduinoJson@${{ env.ARDUINO_JSON_VERSION }}
|
||||
arduino-cli lib install PubSubClient@${{ env.PUB_SUB_CLIENT_VERSION }}
|
||||
arduino-cli lib install SmartRC-CC1101-Driver-Lib@${{ env.SMARTRC_CC1101_VERSION }}
|
||||
arduino-cli lib install WebSockets@${{ env.WEB_SOCKET_VERSION }}
|
||||
- name: Install PlatformIO
|
||||
run: pip install platformio
|
||||
|
||||
- name: Build ${{ matrix.name }}
|
||||
run: |
|
||||
mkdir -p build
|
||||
arduino-cli compile --clean --output-dir build --fqbn ${{ matrix.fqbn }} --warnings default ./SomfyController
|
||||
run: pio run -e ${{ matrix.env }}
|
||||
|
||||
- name: ${{ matrix.name }} Image
|
||||
run: |
|
||||
python -m esptool --chip ${{ matrix.chip }} \
|
||||
merge_bin -o build/SomfyController.onboard.bin \
|
||||
${{ matrix.addr_bootloader }} build/SomfyController.ino.bootloader.bin \
|
||||
0x8000 build/SomfyController.ino.partitions.bin \
|
||||
0x10000 build/SomfyController.ino.bin \
|
||||
0x290000 SomfyController.littlefs.bin
|
||||
- name: Build LittleFS image
|
||||
run: pio run -e ${{ matrix.env }} -t buildfs
|
||||
|
||||
- name: Upload ${{ matrix.name }}
|
||||
uses: actions/upload-artifact@v3
|
||||
- name: Upload firmware
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.name }}
|
||||
path: |
|
||||
build/SomfyController.ino.bin
|
||||
build/SomfyController.ino.bootloader.bin
|
||||
build/SomfyController.ino.partitions.bin
|
||||
build/SomfyController.onboard.bin
|
||||
.pio/build/${{ matrix.env }}/firmware.bin
|
||||
.pio/build/${{ matrix.env }}/firmware.elf
|
||||
.pio/build/${{ matrix.env }}/partitions.bin
|
||||
.pio/build/${{ matrix.env }}/bootloader.bin
|
||||
.pio/build/${{ matrix.env }}/littlefs.bin
|
||||
retention-days: 5
|
||||
|
|
|
|||
194
.github/workflows/release.yaml
vendored
194
.github/workflows/release.yaml
vendored
|
|
@ -1,27 +1,26 @@
|
|||
name: ESPSomfy-RTS Release
|
||||
|
||||
on:
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
env:
|
||||
ARDUINO_BOARD_MANAGER_ADDITIONAL_URLS: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json"
|
||||
ARDUINO_CLI_VERSION: "0.x"
|
||||
ARDUINO_ESP32_VERSION: "2.0.17"
|
||||
ARDUINO_JSON_VERSION: "6.21.5"
|
||||
ESPTOOL_VERSION: "4.7"
|
||||
LITTLEFS_VERSION: "v2.5.1"
|
||||
MKLITTLEFS_VERSION: "3.1.0"
|
||||
PUB_SUB_CLIENT_VERSION: "2.8.0"
|
||||
PYTHON_VERSION: "3.10"
|
||||
SMARTRC_CC1101_VERSION: "2.5.7"
|
||||
WEB_SOCKET_VERSION: "2.4.0"
|
||||
|
||||
jobs:
|
||||
littlefs:
|
||||
name: LittleFS
|
||||
build:
|
||||
permissions: write-all
|
||||
name: ${{ matrix.name }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- env: esp32dev
|
||||
name: ESP32
|
||||
chip: ESP32
|
||||
addr_bootloader: "0x1000"
|
||||
fwname: SomfyController.esp32.bin
|
||||
obname: SomfyController.onboard.esp32.bin
|
||||
|
||||
steps:
|
||||
- name: Get Release
|
||||
id: get_release
|
||||
|
|
@ -32,34 +31,31 @@ jobs:
|
|||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Checkout mklittlefs
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
repository: earlephilhower/mklittlefs
|
||||
path: mklittlefs
|
||||
ref: ${{ env.MKLITTLEFS_VERSION }}
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Checkout LittleFS
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: littlefs-project/littlefs
|
||||
path: mklittlefs/littlefs
|
||||
ref: ${{ env.LITTLEFS_VERSION }}
|
||||
- name: Install PlatformIO
|
||||
run: pip install platformio
|
||||
|
||||
- name: Build mklittlefs
|
||||
- name: Build firmware
|
||||
run: pio run -e ${{ matrix.env }}
|
||||
|
||||
- name: Build LittleFS image
|
||||
run: pio run -e ${{ matrix.env }} -t buildfs
|
||||
|
||||
- name: Create onboard image
|
||||
run: |
|
||||
make -C mklittlefs
|
||||
python -m esptool --chip ${{ matrix.chip }} \
|
||||
merge_bin -o ${{ matrix.obname }} \
|
||||
${{ matrix.addr_bootloader }} .pio/build/${{ matrix.env }}/bootloader.bin \
|
||||
0x8000 .pio/build/${{ matrix.env }}/partitions.bin \
|
||||
0x10000 .pio/build/${{ matrix.env }}/firmware.bin \
|
||||
0x310000 .pio/build/${{ matrix.env }}/littlefs.bin
|
||||
|
||||
- name: Create LittleFS
|
||||
run: |
|
||||
./mklittlefs/mklittlefs --create data --size 1441792 SomfyController.littlefs.bin
|
||||
|
||||
- name: Upload binaries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LittleFS
|
||||
path: SomfyController.littlefs.bin
|
||||
retention-days: 5
|
||||
- name: Compress onboard image
|
||||
run: zip ${{ matrix.obname }}.zip ${{ matrix.obname }}
|
||||
|
||||
- name: Upload LittleFS
|
||||
uses: shogo82148/actions-upload-release-asset@v1.7.5
|
||||
|
|
@ -67,129 +63,20 @@ jobs:
|
|||
github_token: ${{ github.token }}
|
||||
upload_url: ${{ steps.get_release.outputs.upload_url }}
|
||||
asset_name: SomfyController.littlefs.bin
|
||||
asset_path: SomfyController.littlefs.bin
|
||||
asset_path: .pio/build/${{ matrix.env }}/littlefs.bin
|
||||
overwrite: true
|
||||
|
||||
arduino:
|
||||
permissions: write-all
|
||||
name: ${{ matrix.name }}
|
||||
needs: [littlefs]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- board: esp32
|
||||
addr_bootloader: 0x1000
|
||||
chip: ESP32
|
||||
fqbn: esp32:esp32:esp32wrover:PartitionScheme=default,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
# esp32:esp32:esp32wrover:PartitionScheme=default,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
name: ESP32
|
||||
obname: SomfyController.onboard.esp32.bin
|
||||
fwname: SomfyController.ino.esp32.bin
|
||||
- board: esp32c3
|
||||
addr_bootloader: 0x0
|
||||
chip: ESP32-C3
|
||||
fqbn: esp32:esp32:esp32c3:JTAGAdapter=default,CDCOnBoot=cdc,PartitionScheme=default,CPUFreq=160,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
# esp32:esp32:esp32c3:JTAGAdapter=default,CDCOnBoot=default,PartitionScheme=default,CPUFreq=160,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
name: ESP32C3
|
||||
obname: SomfyController.onboard.esp32c3.bin
|
||||
fwname: SomfyController.ino.esp32c3.bin
|
||||
- board: esp32s2
|
||||
addr_bootloader: 0x1000
|
||||
chip: ESP32-S2
|
||||
fqbn: esp32:esp32:esp32s2:JTAGAdapter=default,CDCOnBoot=cdc,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
# esp32:esp32:esp32s2:JTAGAdapter=default,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
name: ESP32S2
|
||||
obname: SomfyController.onboard.esp32s2.bin
|
||||
fwname: SomfyController.ino.esp32s2.bin
|
||||
- board: esp32s3
|
||||
addr_bootloader: 0x0
|
||||
chip: ESP32-S3
|
||||
fqbn: esp32:esp32:esp32s3:JTAGAdapter=default,PSRAM=disabled,FlashMode=qio,FlashSize=4M,LoopCore=1,EventsCore=1,USBMode=hwcdc,CDCOnBoot=cdc,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PartitionScheme=default,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
# esp32:esp32:esp32s3:JTAGAdapter=default,PSRAM=disabled,FlashMode=qio,FlashSize=4M,LoopCore=1,EventsCore=1,USBMode=hwcdc,CDCOnBoot=cdc,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PartitionScheme=default,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none
|
||||
name: ESP32S3
|
||||
fwname: SomfyController.ino.esp32s3.bin
|
||||
obname: SomfyController.onboard.esp32s3.bin
|
||||
steps:
|
||||
- name: Get Release
|
||||
id: get_release
|
||||
uses: bruceadams/get-release@v1.3.2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: SomfyController
|
||||
|
||||
- name: Get LittleFS
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: LittleFS
|
||||
|
||||
- name: Install Python ${{ env.PYTHON_VERSION }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
|
||||
- name: Upgrade pip
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip --version
|
||||
|
||||
- name: Install ESPTool
|
||||
run: |
|
||||
pip install esptool==${{ env.ESPTOOL_VERSION }}
|
||||
|
||||
- name: Install Arduino CLI
|
||||
uses: arduino/setup-arduino-cli@v1
|
||||
with:
|
||||
version: ${{ env.ARDUINO_CLI_VERSION }}
|
||||
|
||||
- name: Configure Arduino CLI
|
||||
run: |
|
||||
arduino-cli core update-index
|
||||
arduino-cli core install esp32:esp32@${{ env.ARDUINO_ESP32_VERSION }}
|
||||
|
||||
- name: Configure Arduino Libraries
|
||||
run: |
|
||||
arduino-cli lib install ArduinoJson@${{ env.ARDUINO_JSON_VERSION }}
|
||||
arduino-cli lib install PubSubClient@${{ env.PUB_SUB_CLIENT_VERSION }}
|
||||
arduino-cli lib install SmartRC-CC1101-Driver-Lib@${{ env.SMARTRC_CC1101_VERSION }}
|
||||
arduino-cli lib install WebSockets@${{ env.WEB_SOCKET_VERSION }}
|
||||
|
||||
- name: Build ${{ matrix.name }}
|
||||
run: |
|
||||
mkdir -p build${{ matrix.name }}
|
||||
arduino-cli compile --clean --output-dir build${{ matrix.name }} --fqbn ${{ matrix.fqbn }} --warnings none ./SomfyController
|
||||
|
||||
- name: ${{ matrix.name }} Image
|
||||
run: |
|
||||
python -m esptool --chip ${{ matrix.chip }} \
|
||||
merge_bin -o ${{ matrix.obname }} \
|
||||
${{ matrix.addr_bootloader }} build${{ matrix.name }}/SomfyController.ino.bootloader.bin \
|
||||
0x8000 build${{ matrix.name }}/SomfyController.ino.partitions.bin \
|
||||
0x10000 build${{ matrix.name }}/SomfyController.ino.bin \
|
||||
0x290000 SomfyController.littlefs.bin
|
||||
|
||||
- name: Upload Firmware ${{ matrix.name }}
|
||||
- name: Upload firmware
|
||||
uses: shogo82148/actions-upload-release-asset@v1.7.5
|
||||
with:
|
||||
github_token: ${{ github.token }}
|
||||
upload_url: ${{ steps.get_release.outputs.upload_url }}
|
||||
asset_name: ${{ matrix.fwname }}
|
||||
asset_path: build${{ matrix.name }}/SomfyController.ino.bin
|
||||
asset_path: .pio/build/${{ matrix.env }}/firmware.bin
|
||||
overwrite: true
|
||||
|
||||
- name: ${{ matrix.name }} Compress Onboard Image
|
||||
run: |
|
||||
zip ${{ matrix.obname }}.zip ./${{ matrix.obname }}
|
||||
|
||||
- name: Upload Onboard ${{ matrix.name }}
|
||||
- name: Upload onboard image
|
||||
uses: shogo82148/actions-upload-release-asset@v1.7.5
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ github.token }}
|
||||
with:
|
||||
github_token: ${{ github.token }}
|
||||
upload_url: ${{ steps.get_release.outputs.upload_url }}
|
||||
|
|
@ -197,4 +84,3 @@ jobs:
|
|||
asset_path: ${{ matrix.obname }}.zip
|
||||
overwrite: true
|
||||
asset_content_type: application/zip
|
||||
|
||||
|
|
|
|||
|
|
@ -1,64 +1,39 @@
|
|||
; PlatformIO Project Configuration File
|
||||
;
|
||||
; Build options: build flags, source filter
|
||||
; Upload options: custom upload port, speed and extra flags
|
||||
; Library options: dependencies, extra library storages
|
||||
; Advanced options: extra scripting
|
||||
;
|
||||
; Please visit documentation for the other options and examples
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[platformio]
|
||||
default_envs = esp32dev
|
||||
|
||||
[env:esp32dev]
|
||||
; Shared settings for all environments
|
||||
[env]
|
||||
platform = espressif32
|
||||
board = esp32dev
|
||||
framework = arduino
|
||||
lib_deps =
|
||||
lib_deps =
|
||||
bblanchon/ArduinoJson@^7.2.2
|
||||
lsatan/SmartRC-CC1101-Driver-Lib@^2.5.7
|
||||
knolleary/PubSubClient@^2.8
|
||||
esp32async/ESPAsyncWebServer @ ^3.10.3
|
||||
esp32async/AsyncTCP @ ^3.4.10
|
||||
esp32async/ESPAsyncWebServer@^3.10.3
|
||||
esp32async/AsyncTCP@^3.4.10
|
||||
extra_scripts = pre:minify.py
|
||||
board_build.partitions = huge_app.csv
|
||||
board_build.filesystem = littlefs
|
||||
build_flags =
|
||||
build_flags =
|
||||
-DCONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=1
|
||||
-DCONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=1
|
||||
-DCONFIG_ESP_COREDUMP_CHECKSUM_CRC32=1
|
||||
-DCONFIG_ESP_TASK_WDT_PANIC=1
|
||||
-DCONFIG_ESP_COREDUMP_DECODE_INFO=1
|
||||
monitor_speed = 115200
|
||||
monitor_filters =
|
||||
monitor_filters =
|
||||
time
|
||||
esp32_exception_decoder
|
||||
log2file
|
||||
|
||||
[env:esp32devdbg]
|
||||
build_type = debug
|
||||
platform = espressif32
|
||||
[env:esp32dev]
|
||||
board = esp32dev
|
||||
framework = arduino
|
||||
lib_deps =
|
||||
bblanchon/ArduinoJson@^7.2.2
|
||||
links2004/WebSockets@^2.7.3
|
||||
lsatan/SmartRC-CC1101-Driver-Lib@^2.5.7
|
||||
knolleary/PubSubClient@^2.8
|
||||
extra_scripts = pre:minify.py
|
||||
board_build.partitions = huge_app.csv
|
||||
board_build.filesystem = littlefs
|
||||
|
||||
[env:esp32c3dev]
|
||||
platform = espressif32
|
||||
board = esp32-c3-devkitm-1
|
||||
framework = arduino
|
||||
lib_deps =
|
||||
bblanchon/ArduinoJson@^7.2.2
|
||||
links2004/WebSockets@^2.7.3
|
||||
lsatan/SmartRC-CC1101-Driver-Lib@^2.5.7
|
||||
knolleary/PubSubClient@^2.8
|
||||
extra_scripts = pre:minify.py
|
||||
board_build.partitions = min_spiffs.csv
|
||||
board_build.filesystem = littlefs
|
||||
[env:esp32devdbg]
|
||||
board = esp32dev
|
||||
build_type = debug
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue