Skip to content
Back to skills

Github Actions

ASecurity

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",...

  • 1,525 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
developmentgobashdebugginggitapici/cd

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add tddworks/ClaudeBar --skill github-actions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Github Actions?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Github Actions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tddworks-github-actions/badge)](https://www.skillsdirectory.com/skills/tddworks-github-actions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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):**

```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.

Files in this skill

  • SKILL.md4 KB
  • references/release-workflow.md3.7 KB
  • references/secrets-setup.md4.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.