Skip to content

Host M-1 WLED 16.0.1 manifest on GitHub Pages#1

Merged
Bunton33 merged 1 commit into
mainfrom
feat/apollo-installer-pages
Jul 17, 2026
Merged

Host M-1 WLED 16.0.1 manifest on GitHub Pages#1
Bunton33 merged 1 commit into
mainfrom
feat/apollo-installer-pages

Conversation

@bharvey88

@bharvey88 bharvey88 commented Jul 17, 2026

Copy link
Copy Markdown

Publishes manifest.json plus the release's M-1_full_install.bin to GitHub Pages for the Apollo web installer, deploying on release publish and manual dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added an Apollo M-1 installer manifest for ESP32-S3 devices.
    • Added automated GitHub Pages deployment for the installer manifest and firmware release binary.
    • Installer setup can prompt to erase existing device data for a clean installation.

Publish apollo/installer/manifest.json and a GitHub Actions workflow
that stages the WLED 16.0.1 manifest plus the M-1_full_install.bin
release asset to GitHub Pages on release publish or manual dispatch,
so the Apollo web installer has a live manifest URL to point at.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Adds Apollo M-1 installer metadata and a GitHub Actions workflow that stages the manifest and release firmware binary, then deploys both to GitHub Pages on published releases or manual dispatch.

Changes

Apollo M-1 installer Pages

Layer / File(s) Summary
Apollo M-1 installer manifest
apollo/installer/manifest.json
Defines version 16.0.1 metadata for the wled domain, enables the erase prompt, and maps the ESP32-S3 build to M-1_full_install.bin at offset 0.
GitHub Pages deployment workflow
.github/workflows/apollo-pages.yml
Configures release and manual triggers, stages installer assets, uploads a Pages artifact, and deploys it with serialized concurrency and Pages permissions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Release as GitHub Release
  participant Actions as GitHub Actions
  participant Pages as GitHub Pages
  Release->>Actions: Trigger published release
  Actions->>Actions: Stage manifest and firmware asset
  Actions->>Pages: Upload and deploy Pages artifact
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: publishing the M-1 WLED 16.0.1 installer manifest on GitHub Pages.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/apollo-pages.yml:
- Line 24: Add a descriptive name property to the actions/checkout@v4 step in
the workflow, clearly indicating that it checks out the repository.
- Line 18: Add descriptive name properties to the deploy job and the checkout,
upload-pages-artifact, and deploy-pages steps in
.github/workflows/apollo-pages.yml at lines 18-18, 24-24, 33-35, and 36-37
respectively, without changing their existing behavior.
- Around line 26-32: Update the release-download step to target the release that
triggered the workflow by passing its tag through a dedicated environment
variable and supplying that variable to gh release download’s tag option. Do not
interpolate github.event.* values directly in the run script; preserve the
existing repository, pattern, and destination arguments.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: dd2d8919-b473-40b4-b031-94f2e23aaf95

📥 Commits

Reviewing files that changed from the base of the PR and between c7d41a8 and f67cf72.

📒 Files selected for processing (2)
  • .github/workflows/apollo-pages.yml
  • apollo/installer/manifest.json

cancel-in-progress: true

jobs:
deploy:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add descriptive names to jobs and steps.

As per path instructions, every workflow, job, and step must have a descriptive name property. Several blocks are missing this attribute.

  • .github/workflows/apollo-pages.yml#L18-L18: Add a name property to the deploy job.
  • .github/workflows/apollo-pages.yml#L24-L24: Add a name property to the checkout step.
  • .github/workflows/apollo-pages.yml#L33-L35: Add a name property to the upload-pages-artifact step.
  • .github/workflows/apollo-pages.yml#L36-L37: Add a name property to the deploy-pages step.
📍 Affects 1 file
  • .github/workflows/apollo-pages.yml#L18-L18 (this comment)
  • .github/workflows/apollo-pages.yml#L24-L24
  • .github/workflows/apollo-pages.yml#L33-L35
  • .github/workflows/apollo-pages.yml#L36-L37
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/apollo-pages.yml at line 18, Add descriptive name
properties to the deploy job and the checkout, upload-pages-artifact, and
deploy-pages steps in .github/workflows/apollo-pages.yml at lines 18-18, 24-24,
33-35, and 36-37 respectively, without changing their existing behavior.

Source: Path instructions

name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@v4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a descriptive name to the step.

As per path instructions, every step must have a descriptive name property.

🧰 Tools
🪛 zizmor (1.26.1)

[warning] 24-24: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/apollo-pages.yml at line 24, Add a descriptive name
property to the actions/checkout@v4 step in the workflow, clearly indicating
that it checks out the repository.

Source: Path instructions

Comment on lines +26 to +32
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir _site
cp apollo/installer/manifest.json _site/manifest.json
gh release download --repo "$GITHUB_REPOSITORY" \
--pattern 'M-1_full_install.bin' --dir _site

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Specify the release tag when downloading.

If an older historic release is published, gh release download without a tag will blindly download the latest release instead of the one that triggered the workflow. Ensure you download the specific version when triggered by a release.

To safely pass the tag into the script without command injection, it is passed via an env variable. As per path instructions, never interpolate github.event.* values directly into run: steps.

💡 Proposed fix
       - name: Stage manifest and firmware
         env:
           GH_TOKEN: ${{ github.token }}
+          RELEASE_TAG: ${{ github.event.release.tag_name }}
         run: |
           mkdir _site
           cp apollo/installer/manifest.json _site/manifest.json
-          gh release download --repo "$GITHUB_REPOSITORY" \
-            --pattern 'M-1_full_install.bin' --dir _site
+          if [ -z "$RELEASE_TAG" ]; then
+            gh release download --repo "$GITHUB_REPOSITORY" --pattern 'M-1_full_install.bin' --dir _site
+          else
+            gh release download "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --pattern 'M-1_full_install.bin' --dir _site
+          fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir _site
cp apollo/installer/manifest.json _site/manifest.json
gh release download --repo "$GITHUB_REPOSITORY" \
--pattern 'M-1_full_install.bin' --dir _site
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ github.event.release.tag_name }}
run: |
mkdir _site
cp apollo/installer/manifest.json _site/manifest.json
if [ -z "$RELEASE_TAG" ]; then
gh release download --repo "$GITHUB_REPOSITORY" --pattern 'M-1_full_install.bin' --dir _site
else
gh release download "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --pattern 'M-1_full_install.bin' --dir _site
fi
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/apollo-pages.yml around lines 26 - 32, Update the
release-download step to target the release that triggered the workflow by
passing its tag through a dedicated environment variable and supplying that
variable to gh release download’s tag option. Do not interpolate github.event.*
values directly in the run script; preserve the existing repository, pattern,
and destination arguments.

Source: Path instructions

@Bunton33
Bunton33 merged commit 2405bd3 into main Jul 17, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants