Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b24c50722f | |||
| 3ec23a9f79 | |||
| 75fe6b55ad | |||
| fa2f980312 | |||
| 7964f1cd77 | |||
| dd611df9f5 | |||
| 0ccc67f4b2 | |||
| a027dfb54e | |||
| 07741f2a52 | |||
| 3e9b89f69b | |||
| bf67a635f6 | |||
| 84cccd5014 | |||
| e983b0fcfd | |||
| e01bb9b1f9 | |||
| 17b6051da0 |
@@ -5,29 +5,75 @@ on:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
permissions:
|
||||
contents: write # Required for creating releases
|
||||
issues: read # Required for reading changelog
|
||||
pull-requests: read # Required for reading changelog
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write # Required for creating releases at job level
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Install PlatformIO
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install --upgrade platformio
|
||||
|
||||
- name: Build Firmware
|
||||
run: |
|
||||
pio run -t buildfs # Build SPIFFS
|
||||
pio run # Build firmware
|
||||
|
||||
- name: Install esptool
|
||||
run: |
|
||||
pip install esptool
|
||||
|
||||
- name: Merge firmware and SPIFFS
|
||||
run: |
|
||||
esptool.py --chip esp32 merge_bin \
|
||||
--flash_mode dio \
|
||||
--flash_freq 40m \
|
||||
--flash_size 4MB \
|
||||
-o .pio/build/esp32dev/filaman.bin \
|
||||
0x1000 .pio/build/esp32dev/bootloader.bin \
|
||||
0x8000 .pio/build/esp32dev/partitions.bin \
|
||||
0x10000 .pio/build/esp32dev/firmware.bin \
|
||||
0x290000 .pio/build/esp32dev/spiffs.bin
|
||||
|
||||
- name: Get version from tag
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/}
|
||||
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Read CHANGELOG.md
|
||||
id: changelog
|
||||
run: |
|
||||
CHANGELOG=$(awk "/## \[${{ steps.get_version.outputs.VERSION }}\]/{p=1;print;next} /## \[/{p=0} p" CHANGELOG.md)
|
||||
echo "::set-output name=CHANGES::$CHANGELOG"
|
||||
|
||||
- name: Create Release
|
||||
uses: actions/create-release@v1
|
||||
CHANGELOG=$(awk "/## \\[${{ steps.get_version.outputs.VERSION }}\\]/{p=1;print;next} /## \\[/{p=0} p" CHANGELOG.md)
|
||||
echo "CHANGES<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$CHANGELOG" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install and Configure GitHub CLI
|
||||
run: |
|
||||
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
|
||||
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
|
||||
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
|
||||
&& sudo apt update \
|
||||
&& sudo apt install gh -y
|
||||
|
||||
- name: Create Release with GitHub CLI
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: Release ${{ steps.get_version.outputs.VERSION }}
|
||||
body: ${{ steps.changelog.outputs.CHANGES }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Changed from GITHUB_TOKEN to GH_TOKEN
|
||||
run: |
|
||||
gh release create "${{ github.ref_name }}" \
|
||||
--title "Release ${{ steps.get_version.outputs.VERSION }}" \
|
||||
--notes "${{ steps.changelog.outputs.CHANGES }}" \
|
||||
".pio/build/esp32dev/filaman.bin#filaman.bin"
|
||||
@@ -0,0 +1,5 @@
|
||||
# Name, Type, SubType, Offset, Size, Flags
|
||||
nvs, data, nvs, 0x9000, 0x5000,
|
||||
otadata, data, ota, 0xe000, 0x2000,
|
||||
app0, app, ota_0, 0x10000, 0x280000,
|
||||
spiffs, data, spiffs, 0x290000, 0x170000,
|
||||
|
+9
-4
@@ -9,7 +9,7 @@
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[common]
|
||||
version = "1.0.5"
|
||||
version = "1.0.9"
|
||||
|
||||
[env:esp32dev]
|
||||
platform = espressif32
|
||||
@@ -19,7 +19,8 @@ monitor_speed = 115200
|
||||
|
||||
lib_deps =
|
||||
tzapu/WiFiManager @ ^2.0.17
|
||||
me-no-dev/ESP Async WebServer @ ^1.2.4
|
||||
#me-no-dev/ESP Async WebServer @ ^1.2.4
|
||||
https://github.com/me-no-dev/ESPAsyncWebServer.git#master
|
||||
me-no-dev/AsyncTCP @ ^1.1.1
|
||||
bogde/HX711 @ ^0.7.5
|
||||
adafruit/Adafruit SSD1306 @ ^2.5.13
|
||||
@@ -31,8 +32,12 @@ lib_deps =
|
||||
|
||||
; Enable SPIFFS upload
|
||||
board_build.filesystem = spiffs
|
||||
board_build.spiffs.partition = 2M
|
||||
board_build.spiffs.upload_size = 2M
|
||||
; Update partition settings
|
||||
board_build.partitions = partitions.csv
|
||||
board_upload.flash_size = 4MB
|
||||
; Remove these as they're now defined in partitions.csv
|
||||
; board_build.spiffs.partition = 2M
|
||||
; board_build.spiffs.upload_size = 2M
|
||||
|
||||
build_flags =
|
||||
-Os
|
||||
|
||||
+33
-3
@@ -218,8 +218,31 @@ void setupWebserver(AsyncWebServer &server) {
|
||||
// Route für Spoolman Setting
|
||||
server.on("/spoolman", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
Serial.println("Anfrage für /spoolman erhalten");
|
||||
String html = loadHtmlWithHeader("/spoolman.html");
|
||||
html.replace("{{spoolmanUrl}}", spoolmanUrl);
|
||||
|
||||
// Zuerst die gz-Datei laden
|
||||
if (!SPIFFS.exists("/spoolman.html.gz")) {
|
||||
request->send(404, "text/plain", "File not found");
|
||||
return;
|
||||
}
|
||||
|
||||
// Datei öffnen und in einen Puffer laden
|
||||
File file = SPIFFS.open("/spoolman.html.gz", "r");
|
||||
size_t fileSize = file.size();
|
||||
uint8_t *gzippedContent = new uint8_t[fileSize];
|
||||
file.read(gzippedContent, fileSize);
|
||||
file.close();
|
||||
|
||||
// Entpacken des gzippedContent in einen String
|
||||
String html;
|
||||
// TODO: Hier muss der gzippedContent entpackt werden
|
||||
// Dies erfordert eine zusätzliche Bibliothek wie zlib
|
||||
|
||||
// Ersetzungen vornehmen
|
||||
String urlToReplace = spoolmanUrl;
|
||||
if (urlToReplace.length() == 0) {
|
||||
urlToReplace = "";
|
||||
}
|
||||
html.replace("{{spoolmanUrl}}", urlToReplace);
|
||||
|
||||
JsonDocument doc;
|
||||
if (loadJsonValue("/bambu_credentials.json", doc) && doc.containsKey("bambu_ip")) {
|
||||
@@ -235,7 +258,14 @@ void setupWebserver(AsyncWebServer &server) {
|
||||
html.replace("{{bambuCode}}", bambuCode ? bambuCode : "");
|
||||
}
|
||||
|
||||
request->send(200, "text/html", html);
|
||||
// Komprimierte Antwort senden
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", html.c_str());
|
||||
response->addHeader("Content-Encoding", "gzip");
|
||||
response->addHeader("Cache-Control", CACHE_CONTROL);
|
||||
request->send(response);
|
||||
|
||||
// Speicher freigeben
|
||||
delete[] gzippedContent;
|
||||
});
|
||||
|
||||
// Route für das Überprüfen der Spoolman-Instanz
|
||||
|
||||
Reference in New Issue
Block a user