github-actions · tddworks — Claude Code skill: CI/CD and install
This skill handles ClaudeBar’s GitHub Actions builds, tests, and releases. Use it to configure CI secrets, publish tagged or manual releases, and investigate failures.
npx skills add tddworks/ClaudeBar --skill github-actions -a claude-codeWhat github-actions does
The skill covers the workflows in .github/workflows/. build.yml checks debug and release builds, tests.yml runs unit tests and uploads coverage to Codecov, and windows.yml builds and tests Quotas with Swift on Windows. release.yml handles macOS releases started by a v* tag or a manual dispatch.
The release path validates the version, edits Info.plist, runs tuist, archives with xcodebuild, signs the app, submits it for notarization, and creates signed ZIP and DMG files with SHA256 checksums. It then publishes a GitHub Release and a Sparkle appcast. Beta tags add the beta channel and require Beta Updates to be enabled. Required secrets cover Apple signing, App Store Connect notarization, Sparkle updates, and Codecov.
A release cannot pass signing and notarization without APPLE_CERTIFICATE_P12, APPLE_CERTIFICATE_PASSWORD, and the App Store Connect keys. Manual dispatch with debug: true prints certificate and keychain details, giving you concrete clues when a release breaks.
What it helps with
- configure GitHub Actions secrets for signing and notarization
- run build and test checks on pushes or pull requests
- publish a release from a
v*tag or manual dispatch - trace signing, notarization, or appcast failures
- separate Sparkle beta updates from stable releases
Example prompts for the agent
- Set up the GitHub Actions secrets for a ClaudeBar release and explain what each one is used for.
- Create version
1.2.0-beta.1from a tag and verify how the Sparkle beta channel is published. - Investigate why
release.ymlfailed after notarization and tell me whatdebug: truewill show.
How to install github-actions
1Skills CLI (Vercel)
npx skills add tddworks/ClaudeBar --skill github-actions -a claude-code2Manually: put the files in place
~/.claude/skills/github-actions/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/github-actions/
1Skills CLI (Vercel)
npx skills add tddworks/ClaudeBar --skill github-actions -a codex2Manually: put the files in place
.agents/skills/github-actions/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tddworks/ClaudeBar --skill github-actions -a cursor2Manually: put the files in place
.cursor/skills/github-actions/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tddworks/ClaudeBar github-actions2Manually: put the files in place
.github/skills/github-actions/SKILL.md1Skills CLI (Vercel)
npx skills add tddworks/ClaudeBar --skill github-actions -a gemini-cli2Platform CLI
gemini skills install https://github.com/tddworks/ClaudeBar --path .claude/skills/github-actionsManually: put the files in place
.devin/skills/github-actions/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tddworks/ClaudeBar --skill github-actions -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about github-actions
How do I install github-actions in Claude Code?
Run npx skills add tddworks/ClaudeBar --skill github-actions -a claude-code, then check ~/.claude/skills/github-actions/SKILL.md.
What does github-actions do?
It guides Claude Code through ClaudeBar’s build, test, and release workflows, including CI secrets, tagged or manual releases, Sparkle channels, and failure diagnosis.
Which secrets are needed for a release?
Signing requires APPLE_CERTIFICATE_P12 and APPLE_CERTIFICATE_PASSWORD. Notarization uses APP_STORE_CONNECT_API_KEY_P8, APP_STORE_CONNECT_KEY_ID, and APP_STORE_CONNECT_ISSUER_ID; Sparkle updates use SPARKLE_EDDSA_PRIVATE_KEY.
Source text
SKILL.md · Apache-2.0
---
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 |
| `windows.yml` | push/PR to main, develop | windows-latest | Builds and tests `Quotas` with Swift on Windows (MODULAR_DESIGN §10, phase 0) |
| `release.yml` | `v*` tag push OR manual | macos-15 | Sign → notarize → DMG → GitHub release → appcast |
## Create a Release
**Option A — Tag (recommended):**
```bash
# 1. Update CHANGELOG.md with release notes for this version
# 2. Commit and push
git add CHANGELOG.md
git commit -m "docs: add release notes for v1.2.0"
git push origin main
# 3. Tag and push — this triggers release.yml automatically
git tag v1.2.0 && git push origin v1.2.0
# Beta / pre-release (automatically flagged on GitHub)
git tag v1.2.0-beta.1 && git push origin v1.2.0-beta.1
```
**Option B — Manual dispatch:**
1. Go to **Actions → Release → Run workflow**
2. Enter version (e.g. `1.2.0` or `1.2.0-beta.1`)
3. 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
| Secret | Required For | See |
|--------|-------------|-----|
| `APPLE_CERTIFICATE_P12` | Code signing | [secrets-setup.md](references/secrets-setup.md) |
| `APPLE_CERTIFICATE_PASSWORD` | Code signing | [secrets-setup.md](references/secrets-setup.md) |
| `APP_STORE_CONNECT_API_KEY_P8` | Notarization | [secrets-setup.md](references/secrets-setup.md) |
| `APP_STORE_CONNECT_KEY_ID` | Notarization | [secrets-setup.md](references/secrets-setup.md) |
| `APP_STORE_CONNECT_ISSUER_ID` | Notarization | [secrets-setup.md](references/secrets-setup.md) |
| `SPARKLE_EDDSA_PRIVATE_KEY` | In-app auto-updates | [secrets-setup.md](references/secrets-setup.md) |
| `CODECOV_TOKEN` | Coverage upload | [secrets-setup.md](references/secrets-setup.md) |
| `APP_IDENTITY` | Optional signing override | [secrets-setup.md](references/secrets-setup.md) |
## 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: [release-workflow.md → Troubleshooting](references/release-workflow.md#troubleshooting)
## 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](references/release-workflow.md) for the full beta channel matrix.
© tddworks · Apache-2.0 · tddworks/ClaudeBar
Similar skills
All skills for DevOps and infrastructure →github-actions by other authors comes first.