fix(ci): Deploy appcast files to GitHub Pages for Sparkle updates#94
Merged
Conversation
## Problem Sparkle auto-update framework fails with "Update Error" because appcast files return 404: - https://eyelock.github.io/TermQ/appcast.xml (404) - https://eyelock.github.io/TermQ/appcast-beta.xml (404) This causes "Check for Updates" button to be disabled in Settings. ## Root Cause The docs.yml workflow only deploys `Docs/Help/` directory to GitHub Pages. The appcast files in `Docs/appcast*.xml` are never deployed, even though the update-appcast.yml workflow generates them correctly on each release. Previous PRs (#56, #78, #79) fixed appcast generation but never addressed deployment. ## Solution Update `.github/workflows/docs.yml`: 1. Create staging directory with Help content 2. Copy appcast files to root of staging directory 3. Deploy entire staging directory to GitHub Pages 4. Trigger workflow on appcast file changes This deploys both Help docs (at root) and appcast files (at root) so: - https://eyelock.github.io/TermQ/ → Help index - https://eyelock.github.io/TermQ/appcast.xml → Stable releases feed - https://eyelock.github.io/TermQ/appcast-beta.xml → Beta releases feed ## Additional Changes **Debug logging:** - Added emoji-tagged logs to track Sparkle initialization and update checks - Helps diagnose update flow issues **Debug build warning:** - Added warning in Settings for Debug builds that installing updates will replace the Debug app with Production version - Allows testing update flow while understanding consequences ## Testing After this PR merges and workflow runs: - Appcast files will be accessible at GitHub Pages URLs - Sparkle will set canCheckForUpdates to true - "Check for Updates" button will be enabled - Update check will succeed (or show "no updates available") Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
added 2 commits
January 27, 2026 23:29
- Add settings.debug.update.warning.title - Add settings.debug.update.warning.message - Update SettingsGeneralView to use localized strings - Sync keys to all 40 supported languages
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Sparkle auto-update framework fails with "Update Error" because appcast files return 404:
This causes "Check for Updates" button to be disabled in Settings.
Root Cause
The
docs.ymlworkflow only deploysDocs/Help/directory to GitHub Pages. The appcast files inDocs/appcast*.xmlare never deployed, even though theupdate-appcast.ymlworkflow generates them correctly on each release.Previous PRs (#56, #78, #79) fixed appcast generation but never addressed deployment.
Solution
Update
.github/workflows/docs.yml:This deploys both Help docs (at root) and appcast files (at root) so:
https://eyelock.github.io/TermQ/→ Help indexhttps://eyelock.github.io/TermQ/appcast.xml→ Stable releases feedhttps://eyelock.github.io/TermQ/appcast-beta.xml→ Beta releases feedAdditional Changes
Debug logging:
Debug build warning:
Testing
After this PR merges and workflow runs:
canCheckForUpdatestotruePhase 7 Testing Status
🤖 Generated with Claude Code