From 9d537c2ce99ad98292f0bf4bf14eaa085333b5ee Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 14 Aug 2026 16:37:05 +0000 Subject: [PATCH 1/2] Update changelog for version 26.8.14 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d1b77ba..65cad1c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +### Changed + +### Hardware + + +## [26.8.14] + +### Added + ### Changed - Start the maintenance task directly from `app_main()` and finish initialization on its configurable stack, preventing HTTPS firmware checks from overflowing the ESP-IDF main task. - Consolidated board pin mappings, revision detection, current scaling, homing capability, and driver sense-resistor values in `boards.h`. From 33bcc8bc12f9abdb3a56e72a9e4af057ab50f75c Mon Sep 17 00:00:00 2001 From: Anthony Doud Date: Fri, 14 Aug 2026 11:54:51 -0500 Subject: [PATCH 2/2] GitHub Actions now explicitly sets the firmware version to the date-based release version --- .github/workflows/build.yml | 5 +++- AGENTS.md | 1 + git_tag_macro.py | 47 +++++++++++++++++-------------------- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e4ba6f79..3f3955f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,10 @@ jobs: python -m pip install --upgrade pip setuptools wheel - name: Get current date id: date - run: echo "date=$(date +'%y.%-m.%-d')" >> $GITHUB_OUTPUT + run: | + release_version=$(date +'%y.%-m.%-d') + echo "date=$release_version" >> "$GITHUB_OUTPUT" + echo "SS2K_FIRMWARE_VERSION=$release_version" >> "$GITHUB_ENV" - name: Test with environment variables run: echo $TAG_NAME - $RELEASE_NAME env: diff --git a/AGENTS.md b/AGENTS.md index a88dd071..87a62a16 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,6 +39,7 @@ PlatformIO is the expected entry point. S3 firmware and filesystem builds use `S3firmware.bin` and `S3littlefs.bin` as their native PlatformIO output/upload names. They also create `S3partitions.bin` and `S3bootloader.bin` copies for releases; the generic partition and bootloader intermediates remain because PlatformIO's flash uploader depends on those names. The GitHub release archive includes firmware, merged factory, LittleFS, partition-table, and bootloader binaries for both classic ESP32 and ESP32-S3 targets. +GitHub Actions exports `SS2K_FIRMWARE_VERSION` from the date-based release tag before invoking PlatformIO. `git_tag_macro.py` requires that override in Actions so published firmware never receives a `git describe` commit suffix; local builds retain branch/commit version details. Filesystem builds stage deterministic gzip copies of every HTML/CSS source file under the environment build directory. They also refresh the checked-in `.gz` companions and `list.json` in `data/` or `data_s3/`, which are consumed by repository-based automatic OTA updates. diff --git a/git_tag_macro.py b/git_tag_macro.py index f3897eee..1aa25083 100644 --- a/git_tag_macro.py +++ b/git_tag_macro.py @@ -1,31 +1,28 @@ +import os import subprocess -subprocess.run(["git", "fetch", "--unshallow"]) -branch = ( - subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]) - .strip() - .decode("utf-8") -) +tag = os.environ.get("SS2K_FIRMWARE_VERSION") -#try: -# subprocess.check_call(["git", "describe", "--tags"]) -#except: -# tag = ( -# subprocess.check_output(["git", "describe", "--abbrev=0" "--tags"]) -# .strip() -# .decode("utf-8") -# ) -#else: -tag = ( - subprocess.check_output(["git", "describe", "--tags", "--always"]) - .strip() - .decode("utf-8") +if os.environ.get("GITHUB_ACTIONS") == "true" and not tag: + raise RuntimeError("SS2K_FIRMWARE_VERSION must be set for GitHub Actions builds") + +if not tag: + subprocess.run(["git", "fetch", "--unshallow"]) + branch = ( + subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]) + .strip() + .decode("utf-8") ) -if branch != "master": - tag_parts = tag.split("-") - tag = "%s-%s" % (tag_parts[0], branch) - if len(tag_parts) > 1: - tag = "%s-%s" % (tag, "-".join(tag_parts[1:])) -print("-DFIRMWARE_VERSION='\"%s\"'" % tag) + tag = ( + subprocess.check_output(["git", "describe", "--tags", "--always"]) + .strip() + .decode("utf-8") + ) + if branch != "master": + tag_parts = tag.split("-") + tag = "%s-%s" % (tag_parts[0], branch) + if len(tag_parts) > 1: + tag = "%s-%s" % (tag, "-".join(tag_parts[1:])) +print("-DFIRMWARE_VERSION='\"%s\"'" % tag)