Host M-1 WLED 16.0.1 manifest on GitHub Pages#1
Conversation
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)
WalkthroughAdds 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. ChangesApollo M-1 installer Pages
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
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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. Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (2)
.github/workflows/apollo-pages.ymlapollo/installer/manifest.json
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| deploy: |
There was a problem hiding this comment.
📐 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 anameproperty to thedeployjob..github/workflows/apollo-pages.yml#L24-L24: Add anameproperty to the checkout step..github/workflows/apollo-pages.yml#L33-L35: Add anameproperty to theupload-pages-artifactstep..github/workflows/apollo-pages.yml#L36-L37: Add anameproperty to thedeploy-pagesstep.
📍 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 |
There was a problem hiding this comment.
📐 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
| 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 |
There was a problem hiding this comment.
🎯 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.
| 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
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