All three OS builds were failing because electron-builder couldn't find or access the GitHub releases:
⨯ 404 Not Found
"method: GET url: https://api.github.com/repos/lhamacorp/knotes/releases"
"x-accepted-github-permissions": "contents=read"
"owner": "lhamacorp", "repo": "knotes" which may not match the actual repositoryBefore (problematic):
{
"publish": {
"provider": "github",
"owner": "lhamacorp",
"repo": "knotes"
}
}
After (clean):
// Removed publish configuration entirely
Before (combined):
- name: Build and publish Linux
run: npm run publish-linux # ❌ Fails with 404
After (separated):
- name: Build Linux Desktop App
run: npm run build-linux # ✅ Build only
- name: Upload Linux Build to Release
run: gh release upload "$TAG" dist/kNotes-*.AppImage # ✅ Upload separately
Updated all build scripts to prevent accidental publishing:
{
"build-linux": "electron-builder --linux --publish=never",
"build-win": "electron-builder --win --publish=never",
"build-mac": "electron-builder --mac --publish=never"
}
Each platform now has debug steps to show what files were built:
- name: Debug Build Output
run: |
echo "=== Build Output ==="
ls -la dist/ || echo "No dist directory"
echo "=== End Build Output ==="
Only uploads files that actually exist:
if ls dist/kNotes-*.AppImage 1> /dev/null 2>&1; then
echo "Found AppImage files:"
gh release upload "$TAG" dist/kNotes-*.AppImage --clobber
else
echo "No AppImage files found"
fi
graph TD
A[Java Build ✅] --> B[Docker Deploy ✅]
B --> C[Create GitHub Release ✅]
C --> D[Build Linux Desktop]
C --> E[Build Windows Desktop]
C --> F[Build macOS Desktop]
D --> G[Upload Linux Files]
E --> H[Upload Windows Files]
F --> I[Upload macOS Files]
G --> J[Complete ✅]
H --> J
I --> J
.AppImage, .exe, .dmg=== Build Output ===
-rw-r--r-- 1 runner docker 104410723 Jan 16 20:03 kNotes-1.1.0.AppImage
-rw-r--r-- 1 runner docker 364 Jan 16 20:03 latest-linux.yml
=== End Build Output ===
Uploading to release: v1.1.0-20260116-200325
Found AppImage files:
-rw-r--r-- 1 runner docker 104410723 Jan 16 20:03 dist/kNotes-1.1.0.AppImage
Next workflow run should show:
.AppImage.exe.dmgThe electron-builder publishing issue is resolved! 🎉