Publish keypad code and rolling log, update BLEScanner to 1.1.0 #1083
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
name: NukiHub | |
on: | |
push: | |
branches: ["*"] | |
tags: ["*"] | |
pull_request: | |
branches: ["*"] | |
tags: ["*"] | |
workflow_dispatch: | |
permissions: | |
contents: write | |
jobs: | |
build: | |
name: Checkout source code and build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/pip | |
~/.platformio/.cache | |
key: ${{ runner.os }}-pio | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Install PlatformIO Core | |
run: pip install --upgrade platformio | |
- name: Install ESPTool | |
run: pip install --upgrade esptool | |
- name: Add version info | |
env: | |
Version: ${{ github.run_id }}.${{ github.run_number }}.${{ github.run_attempt }} | |
run: | | |
sed -i "s/unknownbuildnr/$Version (release)/g" src/Config.h | |
- name: Build PlatformIO Project esp32dev | |
run: | | |
pio run --environment esp32dev | |
mkdir -p release/esp32dev | |
cp .pio/build/esp32dev/firmware.bin release/esp32dev/nuki_hub_esp32.bin | |
cp .pio/build/esp32dev/partitions.bin release/esp32dev/nuki_hub.partitions.bin | |
cp .pio/build/esp32dev/bootloader.bin release/esp32dev/bootloader.bin | |
cp bin/boot_app0.bin release/esp32dev/boot_app0.bin | |
cp how-to-flash.txt release/esp32dev/how-to-flash.txt | |
esptool.py --chip esp32 merge_bin -o release/esp32dev/webflash_nuki_hub_esp32.bin --flash_mode dio --flash_freq keep --flash_size keep 0xe000 bin/boot_app0.bin 0x1000 release/esp32dev/bootloader.bin 0x10000 release/esp32dev/nuki_hub_esp32.bin 0x8000 release/esp32dev/nuki_hub.partitions.bin | |
echo "esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader.bin 0x10000 nuki_hub_esp32.bin 0x8000 nuki_hub.partitions.bin" > release/esp32dev/flash.sh | |
- name: Build PlatformIO Project esp32-s3 | |
run: | | |
pio run --environment esp32-s3 | |
mkdir -p release/esp32s3 | |
cp .pio/build/esp32-s3/firmware.bin release/esp32s3/nuki_hub_esp32s3.bin | |
cp .pio/build/esp32-s3/partitions.bin release/esp32s3/nuki_hub.partitions.bin | |
cp .pio/build/esp32-s3/bootloader.bin release/esp32s3/bootloader.bin | |
cp bin/boot_app0.bin release/esp32s3/boot_app0.bin | |
cp how-to-flash.txt release/esp32s3/how-to-flash.txt | |
esptool.py --chip esp32s3 merge_bin -o release/esp32s3/webflash_nuki_hub_esp32s3.bin --flash_mode dio --flash_freq keep --flash_size keep 0xe000 bin/boot_app0.bin 0x0 release/esp32s3/bootloader.bin 0x10000 release/esp32s3/nuki_hub_esp32s3.bin 0x8000 release/esp32s3/nuki_hub.partitions.bin | |
echo "esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32s3.bin 0x8000 nuki_hub.partitions.bin" > release/esp32s3/flash.sh | |
- name: Build PlatformIO Project esp32-c3 | |
run: | | |
pio run --environment esp32-c3 | |
mkdir -p release/esp32c3 | |
cp .pio/build/esp32-c3/firmware.bin release/esp32c3/nuki_hub_esp32c3.bin | |
cp .pio/build/esp32-c3/partitions.bin release/esp32c3/nuki_hub.partitions.bin | |
cp .pio/build/esp32-c3/bootloader.bin release/esp32c3/bootloader.bin | |
cp bin/boot_app0.bin release/esp32c3/boot_app0.bin | |
cp how-to-flash.txt release/esp32c3/how-to-flash.txt | |
esptool.py --chip esp32c3 merge_bin -o release/esp32c3/webflash_nuki_hub_esp32c3.bin --flash_mode dio --flash_freq keep --flash_size keep 0xe000 bin/boot_app0.bin 0x0 release/esp32c3/bootloader.bin 0x10000 release/esp32c3/nuki_hub_esp32c3.bin 0x8000 release/esp32c3/nuki_hub.partitions.bin | |
echo "esptool.py --chip esp32c3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32c3.bin 0x8000 nuki_hub.partitions.bin" > release/esp32c3/flash.sh | |
- name: Build PlatformIO Project esp32solo1 | |
run: | | |
pio run --environment esp32solo1 | |
mkdir -p release/esp32solo1 | |
cp .pio/build/esp32solo1/firmware.bin release/esp32solo1/nuki_hub_esp32solo1.bin | |
cp .pio/build/esp32solo1/partitions.bin release/esp32solo1/nuki_hub.partitions.bin | |
cp .pio/build/esp32solo1/bootloader.bin release/esp32solo1/bootloader.bin | |
cp bin/boot_app0.bin release/esp32solo1/boot_app0.bin | |
cp how-to-flash.txt release/esp32solo1/how-to-flash.txt | |
echo "esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader.bin 0x10000 nuki_hub_esp32solo1.bin 0x8000 nuki_hub.partitions.bin" > release/esp32solo1/flash.sh | |
- name: Upload Artifact esp32dev | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32-assets | |
path: release/esp32dev | |
- name: Upload Artifact esp32-s3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32-s3-assets | |
path: release/esp32s3 | |
- name: Upload Artifact esp32-c3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32-c3-assets | |
path: release/esp32c3 | |
- name: Upload Artifact esp32solo1 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32solo1-assets | |
path: release/esp32solo1 | |
- name: Add version info | |
env: | |
Version: ${{ github.run_id }}.${{ github.run_number }}.${{ github.run_attempt }} | |
run: | | |
sed -i "s/$Version (release)/$Version (debug)/g" src/Config.h | |
- name: Build PlatformIO Project esp32dev_dbg | |
run: | | |
pio run --environment esp32dev_dbg | |
mkdir -p debug/esp32dev | |
cp .pio/build/esp32dev_dbg/bootloader.bin debug/esp32dev/bootloader.bin | |
cp .pio/build/esp32dev_dbg/firmware.bin debug/esp32dev/nuki_hub_esp32.bin | |
cp .pio/build/esp32dev_dbg/partitions.bin debug/esp32dev/nuki_hub.partitions.bin | |
cp .pio/build/esp32dev_dbg/firmware.elf debug/esp32dev/nuki_hub_esp32.elf | |
cp bin/boot_app0.bin debug/esp32dev/boot_app0.bin | |
cp how-to-flash.txt debug/esp32dev/how-to-flash.txt | |
echo "esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader.bin 0x10000 nuki_hub_esp32.bin 0x8000 nuki_hub.partitions.bin" > debug/esp32dev/flash.sh | |
- name: Build PlatformIO Project esp32-s3_dbg | |
run: | | |
pio run --environment esp32-s3_dbg | |
mkdir -p debug/esp32s3 | |
cp .pio/build/esp32-s3_dbg/bootloader.bin debug/esp32s3/bootloader.bin | |
cp .pio/build/esp32-s3_dbg/firmware.bin debug/esp32s3/nuki_hub_esp32s3.bin | |
cp .pio/build/esp32-s3_dbg/partitions.bin debug/esp32s3/nuki_hub.partitions.bin | |
cp .pio/build/esp32-s3_dbg/firmware.elf debug/esp32s3/nuki_hub_esp32s3.elf | |
cp bin/boot_app0.bin debug/esp32s3/boot_app0.bin | |
cp how-to-flash.txt debug/esp32s3/how-to-flash.txt | |
echo "esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32s3.bin 0x8000 nuki_hub.partitions.bin" > debug/esp32s3/flash.sh | |
- name: Build PlatformIO Project esp32-c3_dbg | |
run: | | |
pio run --environment esp32-c3_dbg | |
mkdir -p debug/esp32c3 | |
cp .pio/build/esp32-c3_dbg/bootloader.bin debug/esp32c3/bootloader.bin | |
cp .pio/build/esp32-c3_dbg/firmware.bin debug/esp32c3/nuki_hub_esp32c3.bin | |
cp .pio/build/esp32-c3_dbg/partitions.bin debug/esp32c3/nuki_hub.partitions.bin | |
cp .pio/build/esp32-c3_dbg/firmware.elf debug/esp32c3/nuki_hub_esp32c3.elf | |
cp bin/boot_app0.bin debug/esp32c3/boot_app0.bin | |
cp how-to-flash.txt debug/esp32c3/how-to-flash.txt | |
echo "esptool.py --chip esp32c3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32c3.bin 0x8000 nuki_hub.partitions.bin" > debug/esp32c3/flash.sh | |
- name: Build PlatformIO Project esp32solo1_dbg | |
run: | | |
pio run --environment esp32solo1_dbg | |
mkdir -p debug/esp32solo1 | |
cp .pio/build/esp32solo1_dbg/bootloader.bin debug/esp32solo1/bootloader.bin | |
cp .pio/build/esp32solo1_dbg/firmware.bin debug/esp32solo1/nuki_hub_esp32solo1.bin | |
cp .pio/build/esp32solo1_dbg/partitions.bin debug/esp32solo1/nuki_hub.partitions.bin | |
cp .pio/build/esp32solo1_dbg/firmware.elf debug/esp32solo1/nuki_hub_esp32solo1.elf | |
cp bin/boot_app0.bin debug/esp32solo1/boot_app0.bin | |
cp how-to-flash.txt debug/esp32solo1/how-to-flash.txt | |
echo "esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader.bin 0x10000 nuki_hub_esp32solo1.bin 0x8000 nuki_hub.partitions.bin" > debug/esp32solo1/flash.sh | |
- name: Upload Artifact esp32dev-debug | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32-debug-assets | |
path: debug/esp32dev | |
- name: Upload Artifact esp32-s3-debug | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32-s3-debug-assets | |
path: debug/esp32s3 | |
- name: Upload Artifact esp32-c3-debug | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32-c3-debug-assets | |
path: debug/esp32c3 | |
- name: Upload Artifact esp32solo1-debug | |
uses: actions/upload-artifact@v4 | |
with: | |
name: esp32solo1-debug-assets | |
path: debug/esp32solo1 | |
release: | |
name: Release new version | |
needs: build | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags') | |
steps: | |
- name: Git Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Download esp32dev | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32-assets | |
path: release/esp32dev | |
- name: Download esp32-s3 | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32-s3-assets | |
path: release/esp32s3 | |
- name: Download esp32-c3 | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32-c3-assets | |
path: release/esp32c3 | |
- name: Download esp32solo1 | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32solo1-assets | |
path: release/esp32solo1 | |
- name: Download esp32dev-debug | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32-debug-assets | |
path: debug/esp32dev | |
- name: Download esp32-s3-debug | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32-s3-debug-assets | |
path: debug/esp32s3 | |
- name: Download esp32-c3-debug | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32-c3-debug-assets | |
path: debug/esp32c3 | |
- name: Download esp32solo1-debug | |
uses: actions/download-artifact@v4 | |
with: | |
name: esp32solo1-debug-assets | |
path: debug/esp32solo1 | |
- name: Get the version | |
id: get_version | |
run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
- name: Build the zip archive for ESP32 | |
run: | | |
cd release/esp32dev | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32.zip * -x "webflash_nuki_hub_esp32.bin" | |
- name: Build the zip archive for ESP32-S3 | |
run: | | |
cd release/esp32s3 | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-S3.zip * -x "webflash_nuki_hub_esp32s3.bin" | |
- name: Build the zip archive for ESP32-C3 | |
run: | | |
cd release/esp32c3 | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-C3.zip * -x "webflash_nuki_hub_esp32c3.bin" | |
- name: Build the zip archive for ESP32-SOLO1 | |
run: | | |
cd release/esp32solo1 | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-SOLO1.zip * | |
- name: Build the zip archive for ESP32 Debug | |
run: | | |
cd debug/esp32dev | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-DEBUG.zip * | |
- name: Build the zip archive for ESP32-S3 Debug | |
run: | | |
cd debug/esp32s3 | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-S3-DEBUG.zip * | |
- name: Build the zip archive for ESP32-C3 Debug | |
run: | | |
cd debug/esp32c3 | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-C3-DEBUG.zip * | |
- name: Build the zip archive for ESP32-SOLO1 Debug | |
run: | | |
cd debug/esp32solo1 | |
zip -9r ../../NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-SOLO1-DEBUG.zip * | |
- name: Create Release | |
id: create_release | |
uses: ncipollo/release-action@v1 | |
with: | |
prerelease: false | |
allowUpdates: true | |
updateOnlyUnreleased: true | |
draft: true | |
name: "Nuki Hub ${{ steps.get_version.outputs.VERSION }}" | |
artifacts: "NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32.zip,NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-S3.zip,NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-C3.zip,NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-SOLO1.zip,NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-DEBUG.zip,NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-S3-DEBUG.zip,NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-C3-DEBUG.zip,NukiHub-${{ steps.get_version.outputs.VERSION }}-ESP32-SOLO1-DEBUG.zip" | |
artifactContentType: application/zip | |
- name: Copy binaries to ota and webflash | |
run: | | |
cp release/esp32dev/nuki_hub_esp32.bin ota/nuki_hub_esp32.bin | |
cp release/esp32s3/nuki_hub_esp32s3.bin ota/nuki_hub_esp32s3.bin | |
cp release/esp32c3/nuki_hub_esp32c3.bin ota/nuki_hub_esp32c3.bin | |
cp release/esp32solo1/nuki_hub_esp32solo1.bin ota/nuki_hub_esp32solo1.bin | |
cp release/esp32dev/webflash_nuki_hub_esp32.bin webflash/webflash_nuki_hub_esp32.bin | |
cp release/esp32s3/webflash_nuki_hub_esp32s3.bin webflash/webflash_nuki_hub_esp32s3.bin | |
cp release/esp32c3/webflash_nuki_hub_esp32c3.bin webflash/webflash_nuki_hub_esp32c3.bin | |
rm -rf release | |
rm -rf debug | |
rm -rf NukiHub-*.zip | |
- name: Commit binaries to master | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: "Update binaries for version ${{ steps.get_version.outputs.VERSION }}" | |
file_pattern: 'ota/*.bin webflash/*.bin' | |
branch: master |