L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

github-actions

github-actions

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 fail…

Independent GitHub snapshot · Automated classification · Original documentation governs

Ttddworks / claudebarApache-2.0

Documentation de la Skill

GitHub

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

WorkflowTriggerRunnerPurpose
build.ymlpush/PR to main, developmacos-15Debug + release build verification
tests.ymlpush/PR to main, developmacos-26Unit tests + Codecov coverage upload
windows.ymlpush/PR to main, developwindows-latestBuilds and tests Quotas with Swift on Windows (MODULAR_DESIGN §10, phase 0)
release.ymlv* tag push OR manualmacos-15Sign → notarize → DMG → GitHub release → appcast

Create a Release

Option A — Tag (recommended):

# 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

SecretRequired ForSee
APPLE_CERTIFICATE_P12Code signingsecrets-setup.md
APPLE_CERTIFICATE_PASSWORDCode signingsecrets-setup.md
APP_STORE_CONNECT_API_KEY_P8Notarizationsecrets-setup.md
APP_STORE_CONNECT_KEY_IDNotarizationsecrets-setup.md
APP_STORE_CONNECT_ISSUER_IDNotarizationsecrets-setup.md
SPARKLE_EDDSA_PRIVATE_KEYIn-app auto-updatessecrets-setup.md
CODECOV_TOKENCoverage uploadsecrets-setup.md
APP_IDENTITYOptional signing overridesecrets-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

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.

Skills enregistrées