workflow: update SPIFFS binary creation to exclude header

This commit is contained in:
Manuel Weiser 2025-02-22 16:47:27 +01:00
parent a5af4013d8
commit 9a59b91e88
3 changed files with 15 additions and 19 deletions

View File

@ -40,8 +40,8 @@ jobs:
# Copy firmware binary
cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin
# Create SPIFFS binary with magic byte 0xE9
( printf '\xe9\x03\x01\x00' && cat .pio/build/esp32dev/spiffs.bin ) > .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
# Create SPIFFS binary without header
cp .pio/build/esp32dev/spiffs.bin .pio.build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
# Create full binary
(cd .pio/build/esp32dev &&

View File

@ -47,8 +47,8 @@ jobs:
# Copy firmware binary
cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin
# Create SPIFFS binary with magic byte 0xE9
( printf '\xe9\x03\x01\x00' && cat .pio/build/esp32dev/spiffs.bin ) > .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
# Create SPIFFS binary without header
cp .pio/build/esp32dev/spiffs.bin .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
# Create full binary (always)
(cd .pio/build/esp32dev &&

View File

@ -7,7 +7,6 @@
#include "nfc.h"
#include "scale.h"
#include "esp_task_wdt.h"
#include "esp_log.h"
#include <Update.h>
#include "display.h"
@ -394,34 +393,35 @@ void setupWebserver(AsyncWebServer &server) {
static size_t updateSize = 0;
static int command = 0;
oledShowMessage("Upgrade please wait");
//oledShowMessage("Upgrade please wait");
if (!index) {
// Reduziere Debug-Level während des Updates
esp_log_level_set("*", ESP_LOG_ERROR);
updateSize = request->contentLength();
command = (filename.indexOf("spiffs") > -1) ? U_SPIFFS : U_FLASH;
command = (filename.indexOf("website") > -1) ? U_SPIFFS : U_FLASH;
if (command == U_SPIFFS) {
oledShowMessage("SPIFFS Update...");
backupJsonConfigs();
if (!Update.begin(updateSize, command)) {
// SPIFFS update with pure binary data
if (!Update.begin((updateSize - 4), command)) { // Exclude header size
restoreJsonConfigs();
String errorMsg = String("Update begin failed: ") + Update.errorString();
request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}");
// Stelle Debug-Level wieder her
esp_log_level_set("*", ESP_LOG_INFO);
return;
}
// Skip initial header completely for SPIFFS update
if (index == 0 && len >= 4) {
data += 4;
len -= 4;
updateSize -= 4;
}
} else {
oledShowMessage("Firmware Update...");
if (!Update.begin(updateSize, command)) {
String errorMsg = String("Update begin failed: ") + Update.errorString();
request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}");
// Stelle Debug-Level wieder her
esp_log_level_set("*", ESP_LOG_INFO);
return;
}
}
@ -453,12 +453,8 @@ void setupWebserver(AsyncWebServer &server) {
}
String errorMsg = String("Update end failed: ") + Update.errorString();
request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}");
// Stelle Debug-Level wieder her
esp_log_level_set("*", ESP_LOG_INFO);
return;
}
// Stelle Debug-Level wieder her
esp_log_level_set("*", ESP_LOG_INFO);
}
}
);