3 Commits

Author SHA1 Message Date
63cd12b6f6 OTA CI loop
All checks were successful
Build Release / build (push) Successful in 1m20s
2026-08-16 20:35:38 +02:00
6a798f8a89 CI for OTA update
Some checks failed
Build Release / build (push) Failing after 1m25s
2026-08-16 20:27:14 +02:00
ab9b81683b fixed sd read error
All checks were successful
Build Release / build (push) Successful in 1m21s
2026-08-16 20:17:39 +02:00
3 changed files with 19 additions and 8 deletions

View File

@@ -18,7 +18,10 @@ jobs:
run: pip install platformio run: pip install platformio
- name: Build firmware - name: Build firmware
run: pio run run: |
VERSION="${GITHUB_REF_NAME#v}"
echo "Building version $VERSION"
PLATFORMIO_BUILD_FLAGS="-D CI_VERSION=$VERSION" pio run
- name: Create Release and Upload Firmware - name: Create Release and Upload Firmware
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2

View File

@@ -66,7 +66,6 @@ namespace {
HTTPClient http; HTTPClient http;
http.setTimeout(timeoutMs); http.setTimeout(timeoutMs);
if (!http.begin(persistentClient, url)) return false; if (!http.begin(persistentClient, url)) return false;
http.setReuse(true);
int code = http.GET(); int code = http.GET();
bool ok = (code == HTTP_CODE_OK); bool ok = (code == HTTP_CODE_OK);
if (ok) outBody = http.getString(); if (ok) outBody = http.getString();
@@ -77,6 +76,7 @@ namespace {
bool loadFromSd(const char* hex, Info& out) { bool loadFromSd(const char* hex, Info& out) {
if (!SdStorage::isMounted()) return false; if (!SdStorage::isMounted()) return false;
String path = String(Config::SD_DETAIL_CACHE_DIR) + "/" + hex + ".txt"; String path = String(Config::SD_DETAIL_CACHE_DIR) + "/" + hex + ".txt";
if (!SD.exists(path)) return false;
File f = SD.open(path); File f = SD.open(path);
if (!f) return false; if (!f) return false;
char line[64]; char line[64];

View File

@@ -2,11 +2,19 @@
#include <Arduino.h> #include <Arduino.h>
namespace Config { namespace Config {
// Updated by Karl on every version release (see // Updated by CI on every version release (see
// CLAUDE.md workflow "Standard Workflow: Push & Release") - shown // .gitea/workflows/release.yml) - shown in the info screen
// in the info screen (Menu > System > Info) and must match the // (Menu > System > Info). Locally built firmware shows "custom".
// corresponding Git tag. // The STR() macro converts the raw -D define to a string literal
constexpr const char* APP_VERSION = "3.6.3"; // (needed because PlatformIO strips quotes from build flags).
#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)
#ifdef CI_VERSION
constexpr const char* APP_VERSION = STR(CI_VERSION);
#else
constexpr const char* APP_VERSION = "custom";
#endif
// Display brightness (Menu > System > Brightness), in percent. // Display brightness (Menu > System > Brightness), in percent.
// MIN intentionally not 0 - a completely dark display could otherwise // MIN intentionally not 0 - a completely dark display could otherwise
@@ -124,5 +132,5 @@ constexpr uint8_t MAX_WIFI_NETWORKS = 3;
// ESP32 reaches Gitea via https://git.rasmusbendtsen.dk (Pangolin). // ESP32 reaches Gitea via https://git.rasmusbendtsen.dk (Pangolin).
constexpr const char* GITEA_API_HOST = "git.rasmusbendtsen.dk"; constexpr const char* GITEA_API_HOST = "git.rasmusbendtsen.dk";
constexpr const char* GITEA_API_PATH = "/api/v1/repos/rasmus/flyradar/releases/latest"; constexpr const char* GITEA_API_PATH = "/api/v1/repos/rasmus/flyradar/releases/latest";
constexpr const char* GITEA_API_TOKEN = "YOUR_GITEA_TOKEN_HERE"; // set this! constexpr const char* GITEA_API_TOKEN = ""; // set this!
} }