gh-release-pipeline
Installation
SKILL.md
Release Pipeline
Push-to-main, semantic-release driven, self-bumping. Only the publish plumbing varies by target (npm, SwiftPM/CocoaPods, Go, Rust, GitHub Action, Homebrew tap). Rust uses release-plz in place of semantic-release; the pipeline shape is identical.
Do not use this for Pages, SST, Cloudflare, or other running-app deploys unless the same change also publishes a versioned package. Use gh-deploy-pipeline for deploy surfaces.
Pipeline Shape
push to main
└─► verify job (lint + typecheck + test + build, on PR and push)
└─► release job (push to main only, !contains [skip ci])
├─► semantic-release: analyze commits, tag, GitHub Release, notes
├─► publish to target (npm / pods / goreleaser / marketplace tag)
└─► @semantic-release/git: commit version bump back to main with [skip ci]
Both jobs check out at fetch-depth: 0. The verify job is gated by a cancellable concurrency group; the release job uses a separate non-cancellable group so two releases never race.