Multi platform desktop release workflow github actions
Skill kjuhwa/skills-hub/skills/ci/multi-platform-desktop-release-workflow-github-actions
Self-correcting knowledge corpus for Claude Code — 9 stable shape clusters, bias-correction pipeline baked into contribution flow. 47 papers, 45 techniques, 1.1k skills.
npx -y skills add kjuhwa/skills-hub --skill multi-platform-desktop-release-workflow-github-actionsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Build and sign desktop apps (macOS, Windows, Linux) from a single CI workflow with conditional code-signing
SKILL.md
2.7 KB, as published. Nobody here has run it
When to Apply
- You build Electron apps for macOS (arm64 + x64), Windows (x64), and Linux
- You want a single release workflow triggered by git tags (
v*.*.*) - You need code-signing and notarization for macOS and Windows
- You support nightly builds on a schedule (e.g., every 3 hours)
- You want to conditionally enable signing only when secrets are present
Steps
- Add
release.ymlwith three trigger types: tag push (v*.*.*), schedule (0 */3 * * *), and workflow_dispatch - First job:
check_changes— on schedule, compare HEAD to last nightly tag; skip if no changes - Second job:
preflight— sets release metadata (version, channel, tag); depends on check_changes - Platform-specific jobs:
build-macos,build-windows,build-linux— depend on preflight - Conditionally enable signing with
secrets.APPLE_*(macOS) andAZURE_TRUSTED_SIGNING_*(Windows) - Publish artifacts to GitHub Releases with version/channel metadata
- For nightly, use
-nightlytag suffix and setis_prerelease: true - For stable, set
make_latest: trueto mark as latest in GitHub UI
Example
on:
push:
tags: ['v*.*.*']
schedule:
- cron: '0 */3 * * *'
jobs:
preflight:
runs-on: blacksmith-8vcpu-ubuntu-2404
outputs:
version: ${{ steps.release_meta.outputs.version }}
build-macos:
needs: preflight
runs-on: macos-latest
steps:
- run: bun run dist:desktop:dmg:arm64
- if: secrets.APPLE_ID
run: codesign -s "${{ secrets.APPLE_CERT_ID }}" dist.dmg
publish:
needs: [build-macos, build-windows, build-linux]
runs-on: ubuntu-latest
steps:
- uses: softprops/action-gh-release@v1
with:
files: release/*
Counter / Caveats
- Apple notarization can be slow (5-10min); plan CI timeout accordingly
- Azure Trusted Signing requires service principal setup; test with
--dry-runfirst - GitHub release secrets are not exposed to pull requests; tag-based releases work, but workflow_dispatch won't sign in PRs
- Nightly builds consume GitHub Actions minutes; throttle to every 3 hours or longer
- Unsigned releases are shareable but may trigger OS warnings on first launch