chore: unify building system with Makefile (#398)
* reorder and extend platformio config * update gitignore * add processing extra_script * add makefile * update github workflow * update docker build * add release and debug targets * define custom_build debug * fix custom_build target * update README
This commit is contained in:
9
Docker/Dockerfile
Normal file
9
Docker/Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
||||
FROM eclipse-temurin:11-jdk-jammy AS builder
|
||||
|
||||
RUN set -ex && \
|
||||
apt-get update && \
|
||||
apt-get install -y git python3 pip make && \
|
||||
pip install --upgrade platformio && \
|
||||
pip install --upgrade esptool
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
@@ -1,45 +0,0 @@
|
||||
FROM eclipse-temurin:11-jdk-jammy AS builder
|
||||
|
||||
RUN set -ex && \
|
||||
apt-get update && \
|
||||
apt-get install -y git python3 pip && \
|
||||
pip install --upgrade platformio && \
|
||||
pip install --upgrade esptool
|
||||
|
||||
COPY icon /usr/src/nuki_hub/icon
|
||||
COPY include /usr/src/nuki_hub/include
|
||||
COPY lib /usr/src/nuki_hub/lib
|
||||
COPY networkDevices /usr/src/nuki_hub/networkDevices
|
||||
COPY partitions.csv /usr/src/nuki_hub
|
||||
COPY platformio.ini /usr/src/nuki_hub
|
||||
COPY index.html /usr/src/nuki_hub
|
||||
COPY *.h /usr/src/nuki_hub/
|
||||
COPY *.cpp /usr/src/nuki_hub/
|
||||
|
||||
RUN set -ex && \
|
||||
cd /usr/src/nuki_hub && \
|
||||
mkdir -p release/esp32 && \
|
||||
mkdir -p release/esp32s3 && \
|
||||
mkdir -p release/esp32c3 && \
|
||||
mkdir -p release/esp32solo1 && \
|
||||
pio run --environment esp32dev && \
|
||||
esptool.py --chip esp32 merge_bin -o release/webflash_nuki_hub_esp32.bin --flash_mode dio --flash_freq keep --flash_size keep 0x1000 .pio/build/esp32dev/bootloader.bin 0x10000 .pio/build/esp32dev/firmware.bin 0x8000 .pio/build/esp32dev/partitions.bin && \
|
||||
cp .pio/build/esp32dev/bootloader.bin release/esp32/bootloader.bin && \
|
||||
cp .pio/build/esp32dev/firmware.bin release/esp32/nuki_hub_esp32.bin && \
|
||||
cp .pio/build/esp32dev/partitions.bin release/esp32/nuki_hub.partitions.bin && \
|
||||
pio run --environment esp32-s3 && \
|
||||
esptool.py --chip esp32s3 merge_bin -o release/webflash_nuki_hub_esp32s3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-s3/bootloader.bin 0x10000 .pio/build/esp32-s3/firmware.bin 0x8000 .pio/build/esp32-s3/partitions.bin && \
|
||||
cp .pio/build/esp32-s3/bootloader.bin release/esp32s3/bootloader.bin && \
|
||||
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 && \
|
||||
pio run --environment esp32-c3 && \
|
||||
esptool.py --chip esp32c3 merge_bin -o release/webflash_nuki_hub_esp32c3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-c3/bootloader.bin 0x10000 .pio/build/esp32-c3/firmware.bin 0x8000 .pio/build/esp32-c3/partitions.bin && \
|
||||
cp .pio/build/esp32-c3/bootloader.bin release/esp32c3/bootloader.bin && \
|
||||
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 && \
|
||||
pio run --environment esp32solo1 && \
|
||||
cp .pio/build/esp32solo1/bootloader.bin release/esp32solo1/bootloader.bin && \
|
||||
cp .pio/build/esp32solo1/firmware.bin release/esp32solo1/nuki_hub_esp32solo1.bin && \
|
||||
cp .pio/build/esp32solo1/partitions.bin release/esp32solo1/nuki_hub.partitions.bin
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
@@ -1,49 +0,0 @@
|
||||
FROM eclipse-temurin:11-jdk-jammy AS builder
|
||||
|
||||
RUN set -ex && \
|
||||
apt-get update && \
|
||||
apt-get install -y git python3 pip && \
|
||||
pip install --upgrade platformio && \
|
||||
pip install --upgrade esptool
|
||||
|
||||
COPY icon /usr/src/nuki_hub/icon
|
||||
COPY include /usr/src/nuki_hub/include
|
||||
COPY lib /usr/src/nuki_hub/lib
|
||||
COPY networkDevices /usr/src/nuki_hub/networkDevices
|
||||
COPY partitions.csv /usr/src/nuki_hub
|
||||
COPY platformio.ini /usr/src/nuki_hub
|
||||
COPY index.html /usr/src/nuki_hub
|
||||
COPY *.h /usr/src/nuki_hub/
|
||||
COPY *.cpp /usr/src/nuki_hub/
|
||||
|
||||
RUN set -ex && \
|
||||
cd /usr/src/nuki_hub && \
|
||||
mkdir -p debug/esp32 && \
|
||||
mkdir -p debug/esp32s3 && \
|
||||
mkdir -p debug/esp32c3 && \
|
||||
mkdir -p debug/esp32solo1 && \
|
||||
pio run --environment esp32dev_dbg && \
|
||||
esptool.py --chip esp32 merge_bin -o debug/webflash_nuki_hub_esp32.bin --flash_mode dio --flash_freq keep --flash_size keep 0x1000 .pio/build/esp32dev_dbg/bootloader.bin 0x10000 .pio/build/esp32dev_dbg/firmware.bin 0x8000 .pio/build/esp32dev_dbg/partitions.bin && \
|
||||
cp .pio/build/esp32dev_dbg/bootloader.bin debug/esp32/bootloader.bin && \
|
||||
cp .pio/build/esp32dev_dbg/firmware.bin debug/esp32/nuki_hub_esp32.bin && \
|
||||
cp .pio/build/esp32dev_dbg/partitions.bin debug/esp32/nuki_hub.partitions.bin && \
|
||||
cp .pio/build/esp32dev_dbg/firmware.elf debug/esp32/nuki_hub_esp32.elf && \
|
||||
pio run --environment esp32-s3_dbg && \
|
||||
esptool.py --chip esp32s3 merge_bin -o debug/webflash_nuki_hub_esp32s3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-s3_dbg/bootloader.bin 0x10000 .pio/build/esp32-s3_dbg/firmware.bin 0x8000 .pio/build/esp32-s3_dbg/partitions.bin && \
|
||||
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 && \
|
||||
pio run --environment esp32-c3_dbg && \
|
||||
esptool.py --chip esp32c3 merge_bin -o debug/webflash_nuki_hub_esp32c3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-c3_dbg/bootloader.bin 0x10000 .pio/build/esp32-c3_dbg/firmware.bin 0x8000 .pio/build/esp32-c3_dbg/partitions.bin && \
|
||||
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 && \
|
||||
pio run --environment esp32solo1_dbg && \
|
||||
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
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
@@ -9,7 +9,7 @@ cd nuki_hub/Docker
|
||||
./build_with_docker_pio.sh
|
||||
```
|
||||
|
||||
once the script is complete you will find the nuki_hub binaries in the `nuki_hub/build_pio` folder.
|
||||
once the script is complete you will find the nuki_hub binaries in the `nuki_hub/release` folder.
|
||||
|
||||
## Build with CMake (will only build for the ESP32)
|
||||
```console
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
set -ex
|
||||
docker build -f ./Dockerfile_pio -t nuki_hub_pio ..
|
||||
docker create --name nuki_hub_pio nuki_hub_pio
|
||||
rm -rf ../build_pio
|
||||
docker cp nuki_hub_pio:/usr/src/nuki_hub/release/ ../build_pio
|
||||
docker rm -f nuki_hub_pio
|
||||
IMAGE_NAME=nuki_hub_build
|
||||
docker build -f ./Dockerfile -t ${IMAGE_NAME} ..
|
||||
docker run --rm -it -v $PWD/..:/src -w /src ${IMAGE_NAME} make release
|
||||
|
||||
8
Docker/build_with_docker_pio_debug.sh
Normal file → Executable file
8
Docker/build_with_docker_pio_debug.sh
Normal file → Executable file
@@ -1,6 +1,4 @@
|
||||
set -ex
|
||||
docker build -f ./Dockerfile_pio_debug -t nuki_hub_pio_dbg ..
|
||||
docker create --name nuki_hub_pio_dbg nuki_hub_pio_dbg
|
||||
rm -rf ../build_pio_dbg
|
||||
docker cp nuki_hub_pio_dbg:/usr/src/nuki_hub/debug/ ../build_pio_dbg
|
||||
docker rm -f nuki_hub_pio_dbg
|
||||
IMAGE_NAME=nuki_hub_build
|
||||
docker build -f ./Dockerfile -t ${IMAGE_NAME} ..
|
||||
docker run --rm -it -v $PWD/..:/src -w /src ${IMAGE_NAME} make debug
|
||||
|
||||
Reference in New Issue
Block a user