diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b72fe532..e4ba6f79 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,10 +83,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: all-artifacts - path: | - SmartSpin2kFirmware-${{ steps.date.outputs.date }}.bin.zip - firmware.factory.bin - S3firmware.factory.bin + path: SmartSpin2kFirmware-${{ steps.date.outputs.date }}.bin.zip - name: Download Artifacts uses: actions/download-artifact@v8 with: @@ -94,6 +91,18 @@ jobs: - name: Get tag info id: tag_info run: echo "SOURCE_TAG=${{ steps.date.outputs.date }}" >> $GITHUB_OUTPUT + - name: Remove obsolete standalone factory assets + env: + GH_TOKEN: ${{ github.token }} + SOURCE_TAG: ${{ steps.tag_info.outputs.SOURCE_TAG }} + run: | + if gh release view "$SOURCE_TAG" > /dev/null 2>&1; then + for asset in firmware.factory.bin S3firmware.factory.bin; do + if gh release view "$SOURCE_TAG" --json assets --jq '.assets[].name' | grep -Fxq "$asset"; then + gh release delete-asset "$SOURCE_TAG" "$asset" --yes + fi + done + fi - name: Create release uses: softprops/action-gh-release@v3 with: @@ -107,8 +116,6 @@ jobs: body: ${{ github.event.head_commit.message }} files: | SmartSpin2kFirmware-${{ steps.date.outputs.date }}.bin.zip - firmware.factory.bin - S3firmware.factory.bin - name: Update changelog uses: thomaseizinger/keep-a-changelog-new-release@v3 with: diff --git a/AGENTS.md b/AGENTS.md index 88c1dc4e..a88dd071 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -38,7 +38,7 @@ PlatformIO is the expected entry point. - Pre-commit checks: `pre-commit run --all-files` 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. The two merged factory images are also published as standalone release assets. +The GitHub release archive includes firmware, merged factory, LittleFS, partition-table, and bootloader binaries for both classic ESP32 and ESP32-S3 targets. 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/CHANGELOG.md b/CHANGELOG.md index e6bcda57..5d1b77ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Automatic filesystem updates now remove files outside the server manifest while preserving settings and power-table data, track the installed filesystem release version, and never replace it with an older release. - Successful LittleFS uploads from the recovery page now reboot after acknowledging the upload so the replacement filesystem is mounted cleanly. - Fixed gzip web responses being labeled with duplicate content-encoding headers, which Firefox rejected. +- Minor spelling fixes. ### Hardware - Corrected the ESP32-S3 shift-up and shift-down pin assignments.