| name | github-actions |
| description | Manage ClaudeBar's GitHub Actions CI/CD pipelines: build, test, and release workflows.
Use this skill when:
(1) Setting up secrets for CI/CD (certificate, API key, Sparkle key, Codecov)
(2) Creating a new release — tag-based or manual workflow_dispatch
(3) Triggering or explaining the build.yml, tests.yml, or release.yml workflows
(4) Debugging release failures (signing, notarization, appcast)
(5) Managing beta vs stable channels for Sparkle auto-updates
(6) User says "release a new version", "push a tag", "set up CI secrets", "why did the release fail"
|
ClaudeBar GitHub Actions
Three workflows live in .github/workflows/. See reference files for setup and troubleshooting.
Workflows at a Glance
| Workflow | Trigger | Runner | Purpose |
|---|
build.yml | push/PR to main, develop | macos-15 | Debug + release build verification |
tests.yml | push/PR to main, develop | macos-26 | Unit tests + Codecov coverage upload |
release.yml | v* tag push OR manual | macos-15 | Sign → notarize → DMG → GitHub release → appcast |
Create a Release
Option A — Tag (recommended):
git add CHANGELOG.md
git commit -m "docs: add release notes for v1.2.0"
git push origin main
git tag v1.2.0 && git push origin v1.2.0
git tag v1.2.0-beta.1 && git push origin v1.2.0-beta.1
Option B — Manual dispatch:
- Go to Actions → Release → Run workflow
- Enter version (e.g.
1.2.0 or 1.2.0-beta.1)
- Optionally toggle
publish_appcast and debug
Supported version formats: X.Y.Z, X.Y.Z-beta, X.Y.Z-beta.N, X.Y.Z-alpha.N, X.Y.Z-rc.N
Secrets Required
What the Release Pipeline Does
git tag v1.2.0
│
▼
release.yml
1. Extract + validate version (SemVer)
2. Update Info.plist (CFBundleShortVersionString + CFBundleVersion = run_number)
3. tuist install → tuist generate
4. xcodebuild archive (arm64 + x86_64, unsigned)
5. Import Developer ID cert into temp keychain
6. codesign with entitlements
7. notarytool submit + staple
8. Create ZIP + DMG (signed), SHA256 checksums
9. Extract release notes from CHANGELOG.md
10. Publish GitHub Release (draft: false)
11. Generate Sparkle appcast with EdDSA signature
12. Deploy appcast to GitHub Pages
Debugging Failures
Enable verbose output via manual dispatch → debug: true. This prints:
- P12 certificate details and contents
- All identities in the signing keychain
- Certificate subject and expiry dates
For detailed troubleshooting: troubleshooting.md
Beta Channel
Pre-release tags (v1.2.0-beta.1) automatically:
- Set GitHub release as
prerelease: true
- Add
<sparkle:channel>beta</sparkle:channel> to the appcast entry
- Are only offered to users with Beta Updates enabled in Settings
Stable releases always win over betas of the same version (stable gets higher build number).
See release-workflow.md for the full beta channel matrix.