From a8776b6fc5c84615cfe67d2bf546fa55ef2f1875 Mon Sep 17 00:00:00 2001 From: Gijs Noorlander Date: Thu, 21 Nov 2019 10:23:30 +0100 Subject: [PATCH] [PIO] Add core 2.6.1 SDK3 builds and PIO env list for Vagrant Create a file named "pio_envlist.txt" next to the Custom.h for Vagrant with the selected env names in it, one per line. Vagrant will then build all named PIO environments. --- before_deploy | 40 ++---------- memanalyzer.py | 2 +- platformio_core_defs.ini | 8 +++ platformio_esp82xx_base.ini | 5 ++ platformio_esp82xx_envs.ini | 117 ++++++++++++++++++++++++++++-------- platformio_special_envs.ini | 8 +-- tools/build_ESPeasy.sh | 41 ++----------- tools/vagrant/bootstrap.sh | 18 +++++- 8 files changed, 133 insertions(+), 106 deletions(-) diff --git a/before_deploy b/before_deploy index 526557a33..4e5636406 100755 --- a/before_deploy +++ b/before_deploy @@ -39,37 +39,10 @@ fi mkdir -p ${TMP_DIST}/memstats -# Same list in .travis.yml and tools/build_ESPeasy.sh -for ENV in \ - custom_ESP32_4M316k\ - custom_ESP8266_4M1M\ - custom_ESP8266_4M2M\ - dev_ESP8266_4M1M\ - hard_SONOFF_POW_4M1M\ - hard_Shelly_1_2M256\ - hard_Ventus_W266\ - hard_other_POW_ESP8285_1M\ - minimal_IRext_ESP8266_1M\ - minimal_IRext_ESP8266_4M1M\ - minimal_IRext_ESP8266_4M2M\ - minimal_core_242_ESP8266_1M_OTA\ - minimal_core_242_ESP8285_1M_OTA\ - minimal_core_261_ESP8266_1M_OTA\ - minimal_core_261_ESP8285_1M_OTA\ - normal_ESP8266_16M\ - normal_ESP8266_1M\ - normal_ESP8266_1M_VCC\ - normal_ESP8266_4M1M\ - normal_ESP8285_1M\ - normal_IRext_no_rx_ESP8266_4M2M\ - normal_WROOM02_2M256\ - normal_WROOM02_2M\ - test_ESP8266_4M_VCC\ - test_beta_ESP8266_16M\ - test_beta_ESP8266_4M1M\ - test_ESP32_4M316k\ - test_ESP32-wrover-kit_4M316k;\ -do +# Must look into all possible env definitions. +# Exclude so called "spec_" (special) builds +for ENV in `grep "^\[env:" platformio*.ini |cut -d'[' -f2|cut -d']' -f1|cut -d':' -f2|sort -n|grep -v spec_`; +do MAX_FILESIZE=1044464 if [[ ${ENV} == *"_1M"* ]]; then # max 872 kiB - 16 bytes @@ -79,14 +52,11 @@ do # max 600 kiB - 16 bytes MAX_FILESIZE=614384 fi - if [[ ${ENV} == *"esp32"* ]]; then - MAX_FILESIZE=1310720 - fi if [[ ${ENV} == *"4M316k"* ]]; then # ESP32 with 1800k of sketch space. MAX_FILESIZE=1900544 fi - if [[ ${ENV} == *"ebug_custom"* ]]; then + if [[ ${ENV} == *"debug_"* ]]; then # Debug env, used for analysis, not to be run on a node. MAX_FILESIZE=0 fi diff --git a/memanalyzer.py b/memanalyzer.py index e233f14e0..a2a4566b7 100755 --- a/memanalyzer.py +++ b/memanalyzer.py @@ -23,7 +23,7 @@ import os TOTAL_IRAM = 32786; TOTAL_DRAM = 81920; -env="memanalyze_ESP8266" +env="spec_memanalyze_ESP8266" sections = OrderedDict([ ("data", "Initialized Data (RAM)"), diff --git a/platformio_core_defs.ini b/platformio_core_defs.ini index 9a1a9a519..d1adf9b73 100644 --- a/platformio_core_defs.ini +++ b/platformio_core_defs.ini @@ -92,6 +92,9 @@ lib_ignore = ESP32_ping, ESP32WebServer, IRremoteESP8266, Heatpum ;platform = espressif8266@2.2.3 ;build_flags = ${esp82xx_2_5_x.build_flags} + +; See for SDK flags: https://github.com/esp8266/Arduino/blob/master/tools/platformio-build.py + [core_2_6_0] platform = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_0 build_flags = ${esp82xx_2_6_x.build_flags} @@ -102,6 +105,11 @@ platform = https://github.com/Jason2866/platform-espressif8266. build_flags = ${esp82xx_2_6_x.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105 +[core_2_6_1_sdk3] +platform = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_1 +build_flags = ${esp82xx_2_6_x.build_flags} + -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3 + [core_stage] platform = https://github.com/platformio/platform-espressif8266.git#feature/stage build_flags = ${esp82xx_2_6_x.build_flags} diff --git a/platformio_esp82xx_base.ini b/platformio_esp82xx_base.ini index 189fdbe33..9b5359d48 100644 --- a/platformio_esp82xx_base.ini +++ b/platformio_esp82xx_base.ini @@ -9,6 +9,11 @@ build_unflags = build_flags = ${core_2_6_1.build_flags} platform = ${core_2_6_1.platform} +[core261_sdk3_platform] +build_unflags = +build_flags = ${core_2_6_1_sdk3.build_flags} +platform = ${core_2_6_1_sdk3.platform} + [beta_platform] build_unflags = build_flags = ${core_stage.build_flags} diff --git a/platformio_esp82xx_envs.ini b/platformio_esp82xx_envs.ini index 4c7947c4a..888c95928 100644 --- a/platformio_esp82xx_envs.ini +++ b/platformio_esp82xx_envs.ini @@ -14,8 +14,30 @@ build_flags = ${regular_platform.build_flags} ; Custom: 4M1M version -------------------------- [env:custom_ESP8266_4M1M] extends = esp8266_4M1M +platform = ${regular_platform.platform} +build_flags = ${regular_platform.build_flags} + ${esp8266_4M1M.build_flags} + -DPLUGIN_BUILD_CUSTOM +lib_ignore = ESP32_ping, ESP32WebServer +extra_scripts = pre:pre_custom_esp82xx.py + + +[env:custom_sdk3_ESP8266_4M1M] +extends = esp8266_4M1M +platform = ${core261_sdk3_platform.platform} +build_flags = ${core261_sdk3_platform.build_flags} + ${esp8266_4M1M.build_flags} + -DPLUGIN_BUILD_CUSTOM +lib_ignore = ESP32_ping, ESP32WebServer +extra_scripts = pre:pre_custom_esp82xx.py + + +[env:custom_beta_ESP8266_4M1M] +extends = esp8266_4M1M platform = ${beta_platform.platform} -build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM +build_flags = ${beta_platform.build_flags} + ${esp8266_4M1M.build_flags} + -DPLUGIN_BUILD_CUSTOM lib_ignore = ESP32_ping, ESP32WebServer extra_scripts = pre:pre_custom_esp82xx.py @@ -23,8 +45,10 @@ extra_scripts = pre:pre_custom_esp82xx.py ; Custom: 4M2M version -------------------------- [env:custom_ESP8266_4M2M] extends = esp8266_4M2M -platform = ${beta_platform.platform} -build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM +platform = ${regular_platform.platform} +build_flags = ${regular_platform.build_flags} + ${esp8266_4M1M.build_flags} + -DPLUGIN_BUILD_CUSTOM lib_ignore = ESP32_ping, ESP32WebServer extra_scripts = pre:pre_custom_esp82xx.py @@ -39,47 +63,55 @@ extra_scripts = pre:pre_custom_esp82xx.py [env:normal_ESP8266_1M] extends = esp8266_1M platform = ${regular_platform.platform} -build_flags = ${esp8266_1M.build_flags} +build_flags = ${regular_platform.build_flags} + ${esp8266_1M.build_flags} [env:normal_ESP8266_1M_VCC] extends = esp8266_1M platform = ${regular_platform.platform} -build_flags = ${esp8266_1M.build_flags} -D FEATURE_ADC_VCC=true +build_flags = ${regular_platform.build_flags} + ${esp8266_1M.build_flags} + -D FEATURE_ADC_VCC=true ; NORMAL: 1024k for esp8285 ---------------------- [env:normal_ESP8285_1M] extends = esp8285_1M platform = ${regular_platform.platform} -build_flags = ${esp8285_1M.build_flags} +build_flags = ${regular_platform.build_flags} + ${esp8285_1M.build_flags} ; NORMAL: 2048k WROOM02 version -------------------------- [env:normal_WROOM02_2M] extends = espWroom2M platform = ${regular_platform.platform} -build_flags = ${espWroom2M.build_flags} ${regular_platform.build_flags} +build_flags = ${regular_platform.build_flags} + ${espWroom2M.build_flags} ; NORMAL: 2048k WROOM02 version 256k SPIFFS -------------------------- [env:normal_WROOM02_2M256] extends = espWroom2M256 platform = ${regular_platform.platform} -build_flags = ${espWroom2M256.build_flags} ${regular_platform.build_flags} +build_flags = ${regular_platform.build_flags} + ${espWroom2M256.build_flags} ; NORMAL: 4096k version -------------------------- [env:normal_ESP8266_4M1M] extends = esp8266_4M1M platform = ${regular_platform.platform} -build_flags = ${esp8266_4M1M.build_flags} ${regular_platform.build_flags} +build_flags = ${regular_platform.build_flags} + ${esp8266_4M1M.build_flags} ; NORMAL: 16M version -------------------------- [env:normal_ESP8266_16M] extends = esp8266_16M platform = ${regular_platform.platform} -build_flags = ${esp8266_16M.build_flags} ${regular_platform.build_flags} +build_flags = ${regular_platform.build_flags} + ${esp8266_16M.build_flags} ;;; Minimal *********************************************************** @@ -89,23 +121,38 @@ build_flags = ${esp8266_16M.build_flags} ${regular_platform.build_ [env:minimal_core_242_ESP8266_1M_OTA] extends = esp8266_1M_OTA platform = ${core_2_4_2.platform} -build_flags = ${esp8266_1M_OTA.build_flags} ${core_2_4_2.build_flags} +build_flags = ${core_2_4_2.build_flags} + ${esp8266_1M_OTA.build_flags} [env:minimal_core_242_ESP8285_1M_OTA] extends = esp8285_1M_OTA platform = ${core_2_4_2.platform} -build_flags = ${esp8285_1M_OTA.build_flags} ${core_2_4_2.build_flags} +build_flags = ${core_2_4_2.build_flags} + ${esp8285_1M_OTA.build_flags} [env:minimal_core_261_ESP8266_1M_OTA] extends = esp8266_1M_OTA platform = ${regular_platform.platform} -build_flags = ${esp8266_1M_OTA.build_flags} ${regular_platform.build_flags} +build_flags = ${regular_platform.build_flags} + ${esp8266_1M_OTA.build_flags} [env:minimal_core_261_ESP8285_1M_OTA] extends = esp8285_1M_OTA platform = ${regular_platform.platform} -build_flags = ${esp8285_1M_OTA.build_flags} ${regular_platform.build_flags} +build_flags = ${regular_platform.build_flags} + ${esp8285_1M_OTA.build_flags} +[env:minimal_core_261_sdk3_ESP8266_1M_OTA] +extends = esp8266_1M_OTA +platform = ${core261_sdk3_platform.platform} +build_flags = ${core261_sdk3_platform.build_flags} + ${esp8266_1M_OTA.build_flags} + +[env:minimal_core_261_sdk3_ESP8285_1M_OTA] +extends = esp8285_1M_OTA +platform = ${core261_sdk3_platform.platform} +build_flags = ${core261_sdk3_platform.build_flags} + ${esp8285_1M_OTA.build_flags} @@ -121,7 +168,8 @@ build_flags = ${esp8285_1M_OTA.build_flags} ${regular_platform.bui extends = esp8266_1M platform = ${minimal_ir_extended.platform} lib_ignore = ${minimal_ir_extended.lib_ignore} -build_flags = ${minimal_ir_extended.build_flags} ${esp8266_1M.build_flags} +build_flags = ${minimal_ir_extended.build_flags} + ${esp8266_1M.build_flags} build_unflags = ${esp8266_1M_OTA.build_unflags} -DPLUGIN_BUILD_NORMAL_IR @@ -133,14 +181,16 @@ build_unflags = ${esp8266_1M_OTA.build_unflags} -DPLUGIN_BUILD_NORMA extends = esp8266_4M1M platform = ${minimal_ir_extended.platform} lib_ignore = ${minimal_ir_extended.lib_ignore} -build_flags = ${minimal_ir_extended.build_flags} ${esp8266_4M1M.build_flags} +build_flags = ${minimal_ir_extended.build_flags} + ${esp8266_4M1M.build_flags} ; 4M flash, 2M SPIFFS [env:minimal_IRext_ESP8266_4M2M] extends = esp8266_4M2M platform = ${minimal_ir_extended.platform} lib_ignore = ${minimal_ir_extended.lib_ignore} -build_flags = ${minimal_ir_extended.build_flags} ${esp8266_4M2M.build_flags} +build_flags = ${minimal_ir_extended.build_flags} + ${esp8266_4M2M.build_flags} ; NORMAL IR: 4096k version -------------------------- @@ -151,7 +201,8 @@ build_flags = ${minimal_ir_extended.build_flags} ${esp8266_4M2M.bu extends = esp8266_4M2M platform = ${normal_ir_extended_no_rx.platform} lib_ignore = ${normal_ir_extended_no_rx.lib_ignore} -build_flags = ${normal_ir_extended_no_rx.build_flags} ${esp8266_4M2M.build_flags} +build_flags = ${normal_ir_extended_no_rx.build_flags} + ${esp8266_4M2M.build_flags} @@ -165,19 +216,24 @@ build_flags = ${normal_ir_extended_no_rx.build_flags} ${esp8266_4M [env:test_ESP8266_4M_VCC] extends = esp8266_4M1M platform = ${testing.platform} -build_flags = ${esp8266_4M1M.build_flags} ${testing.build_flags} -D FEATURE_ADC_VCC=true +build_flags = ${testing.build_flags} + ${esp8266_4M1M.build_flags} + -D FEATURE_ADC_VCC=true [env:test_beta_ESP8266_4M1M] extends = esp8266_4M1M platform = ${testing_beta.platform} -build_flags = ${esp8266_4M1M.build_flags} ${testing_beta.build_flags} +build_flags = ${testing_beta.build_flags} + ${esp8266_4M1M.build_flags} [env:test_beta_ESP8266_16M] extends = esp8266_16M platform = ${testing_beta.platform} -build_flags = ${esp8266_16M.build_flags} ${testing_beta.build_flags} -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22y +build_flags = ${testing_beta.build_flags} + ${esp8266_16M.build_flags} + -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22y @@ -194,7 +250,8 @@ build_flags = ${esp8266_16M.build_flags} ${testing_beta.build_flag [env:dev_ESP8266_4M1M] extends = esp8266_4M1M platform = ${dev.platform} -build_flags = ${esp8266_4M1M.build_flags} ${dev.build_flags} +build_flags = ${dev.build_flags} + ${esp8266_4M1M.build_flags} @@ -235,7 +292,9 @@ build_flags = ${esp8266_4M1M.build_flags} ${dev.build_flags} [env:hard_SONOFF_POW_4M1M] extends = esp8266_4M1M, hard_esp82xx platform = ${hard_esp82xx.platform} -build_flags = ${hard_esp82xx.build_flags} ${esp8266_4M1M.build_flags} -D PLUGIN_SET_SONOFF_POW +build_flags = ${hard_esp82xx.build_flags} + ${esp8266_4M1M.build_flags} + -D PLUGIN_SET_SONOFF_POW ; Build including power measurement plugins for those devices that have only 1M flash. @@ -243,7 +302,9 @@ build_flags = ${hard_esp82xx.build_flags} ${esp8266_4M1M.build_fla [env:hard_other_POW_ESP8285_1M] extends = esp8266_1M_OTA, hard_esp82xx platform = ${hard_esp82xx.platform} -build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_POW +build_flags = ${hard_esp82xx.build_flags} + ${esp8266_1M_OTA.build_flags} + -D PLUGIN_SET_SONOFF_POW ; ITEAD / SONOFF S20 version -------------------- @@ -275,13 +336,17 @@ build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M_OTA.build_f [env:hard_Shelly_1_2M256] extends = esp8266_2M256, hard_esp82xx platform = ${hard_esp82xx.platform} -build_flags = ${hard_esp82xx.build_flags} ${esp8266_2M256.build_flags} -D PLUGIN_SET_SHELLY_1 +build_flags = ${hard_esp82xx.build_flags} + ${esp8266_2M256.build_flags} + -D PLUGIN_SET_SHELLY_1 ; Ventus W266 weather station ; https://www.letscontrolit.com/wiki/index.php/VentusW266 [env:hard_Ventus_W266] extends = esp8266_1M, hard_esp82xx platform = ${hard_esp82xx.platform} -build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M_OTA.build_flags} -D PLUGIN_SET_VENTUS_W266 +build_flags = ${hard_esp82xx.build_flags} + ${esp8266_1M_OTA.build_flags} + -D PLUGIN_SET_VENTUS_W266 diff --git a/platformio_special_envs.ini b/platformio_special_envs.ini index d27ad5ec9..179cd5516 100644 --- a/platformio_special_envs.ini +++ b/platformio_special_envs.ini @@ -9,7 +9,7 @@ check_tool = clangtidy build_flags = ${compiler_warnings.build_flags} -[env:debug_custom_ESP8266_4M1M] +[env:spec_debug_custom_ESP8266_4M1M] extends = esp8266_4M1M, debug_pio platform = ${regular_platform.platform} build_flags = ${esp8266_4M1M.build_flags} ${regular_platform.build_flags} ${debug_pio.build_flags} -DPLUGIN_BUILD_CUSTOM @@ -17,7 +17,7 @@ lib_ignore = ESP32_ping, ESP32WebServer extra_scripts = pre:pre_custom_esp82xx.py -[env:debug_beta_custom_ESP8266_4M1M] +[env:spec_debug_beta_custom_ESP8266_4M1M] extends = esp8266_4M1M, debug_pio platform = ${beta_platform.platform} build_flags = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} ${debug_pio.build_flags} -DPLUGIN_BUILD_CUSTOM @@ -25,7 +25,7 @@ lib_ignore = ESP32_ping, ESP32WebServer extra_scripts = pre:pre_custom_esp82xx.py -[env:debug_custom_ESP32_4M316k] +[env:spec_debug_custom_ESP32_4M316k] extends = esp32_common, debug_pio platform = ${esp32_common.platform} build_flags = ${esp32_common.build_flags} -DPLUGIN_BUILD_CUSTOM @@ -37,7 +37,7 @@ extra_scripts = pre:pre_custom_esp32.py ; Special env for memory analysis ; This may generate builds which cannot be run, so do not upload to a node. ; Has the same lib_ignore as the IR builds, or else those cannot be built for testing -[env:memanalyze_ESP8266] +[env:spec_memanalyze_ESP8266] extends = esp8266_4M1M platform = ${regular_platform.platform} lib_ignore = ESP32_ping, ESP32WebServer diff --git a/tools/build_ESPeasy.sh b/tools/build_ESPeasy.sh index 3e5a51ded..af9e300a6 100755 --- a/tools/build_ESPeasy.sh +++ b/tools/build_ESPeasy.sh @@ -75,46 +75,13 @@ platformio run --target clean cd ${SRC}/patches; ./check_puya_patch; cd ${SRC} -# Build all targets in the platformio.ini file. (same as in .travis.yml and before_deploy) -for ENV in \ - custom_ESP32_4M316k\ - custom_ESP8266_4M1M\ - custom_ESP8266_4M2M\ - dev_ESP8266_4M1M\ - hard_SONOFF_POW_4M1M\ - hard_Shelly_1_2M256\ - hard_Ventus_W266\ - hard_other_POW_ESP8285_1M\ - minimal_IRext_ESP8266_1M\ - minimal_IRext_ESP8266_4M1M\ - minimal_IRext_ESP8266_4M2M\ - minimal_core_242_ESP8266_1M_OTA\ - minimal_core_242_ESP8285_1M_OTA\ - minimal_core_261_ESP8266_1M_OTA\ - minimal_core_261_ESP8285_1M_OTA\ - normal_ESP8266_16M\ - normal_ESP8266_1M\ - normal_ESP8266_1M_VCC\ - normal_ESP8266_4M1M\ - normal_ESP8285_1M\ - normal_IRext_no_rx_ESP8266_4M2M\ - normal_WROOM02_2M256\ - normal_WROOM02_2M\ - test_ESP8266_4M_VCC\ - test_beta_ESP8266_16M\ - test_beta_ESP8266_4M1M\ - test_ESP32_4M316k\ - test_ESP32-wrover-kit_4M316k;\ -do +# Must look into all possible env definitions. +# Exclude so called "spec_" (special) builds +for ENV in `grep "^\[env:" platformio*.ini |cut -d'[' -f2|cut -d']' -f1|cut -d':' -f2|sort -n|grep -v spec_`; +do PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e ${ENV} done - -#for ENV in `grep "^\[env:" platformio.ini |cut -d':' -f2|cut -d']' -f1`; -#do -# platformio run -e ${ENV} -#done - # Rename all built files, compute CRC and insert binaryFilename # Collect all in a zip file. if [ -z "$DESCRIPTION" ] diff --git a/tools/vagrant/bootstrap.sh b/tools/vagrant/bootstrap.sh index be4c30eab..d0fb3059e 100644 --- a/tools/vagrant/bootstrap.sh +++ b/tools/vagrant/bootstrap.sh @@ -11,6 +11,7 @@ DESCRIPTION="" VAGRANT_FOLDER="/vagrant" BUILD_FOLDER=`echo "${VAGRANT_FOLDER}/build"` CUSTOM_H_FILE="Custom.h" +ENV_LIST_FILE="pio_envlist.txt" while getopts p:d: option do @@ -53,15 +54,26 @@ cd ${SRC}/patches; ./check_puya_patch; cd ${SRC} VAGRANT_CUSTOM_H_FILE=`echo "${VAGRANT_FOLDER}/${CUSTOM_H_FILE}"` +VAGRANT_PIO_ENVLIST_FILE=`echo "${VAGRANT_FOLDER}/${ENV_LIST_FILE}"` SRC_CUSTOM_H_FILE=`echo "${SRC}/src/${CUSTOM_H_FILE}"` +SRC_PIO_ENVLIST_FILE=`echo "${SRC}/src/${ENV_LIST_FILE}"` if [ -f ${VAGRANT_CUSTOM_H_FILE} ]; then # replace Windows line endings with Unix line endings sed 's/\r$//g' ${VAGRANT_CUSTOM_H_FILE} > ${SRC_CUSTOM_H_FILE} echo "Copy ${VAGRANT_CUSTOM_H_FILE} > ${SRC_CUSTOM_H_FILE}" fi - -# Build custom_ESP8266_4M target in the platformio.ini file -PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e ${PIO_BUILDENV} +if [ -f ${VAGRANT_PIO_ENVLIST_FILE} ]; then + # replace Windows line endings with Unix line endings + sed 's/\r$//g' ${VAGRANT_PIO_ENVLIST_FILE} > ${SRC_PIO_ENVLIST_FILE} + input=`echo "${SRC_PIO_ENVLIST_FILE}"` + while IFS= read -r line + do + PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e $line + done < "$input" +else + # Build custom_ESP8266_4M target in the platformio.ini file + PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -e ${PIO_BUILDENV} +fi # rename and check file DATE=`date +%Y%m%d`