This repository uses GitHub Actions + release-please.
maindrives stable releases.- Conventional Commits drive changelog and semantic version bumps.
-
.github/workflows/ci.yml- Runs on PRs to
main, and pushes tomain/dev. - Executes:
go test ./...go build ./...go vet ./...
- Runs on PRs to
-
.github/workflows/conventional-commits.yml- Enforces Conventional Commit style PR titles.
- Use squash merges so the PR title becomes the release-relevant commit message.
-
.github/workflows/release-please-main.yml- Runs release-please against
main. - Creates/updates release PRs and publishes stable releases.
- Runs release-please against
-
.github/workflows/release-build.yml- Triggered on GitHub release publish.
- Builds binaries for:
darwin/arm64linux/amd64linux/arm64
- Injects version at build time with ldflags.
- Uploads
.tar.gzassets andSHA256SUMS.
- Stable config:
.release-please-config-main.json.release-please-manifest-main.json
-
Add repository secret:
RELEASE_PLEASE_TOKEN(PAT with repo permissions).
-
In repository settings, allow Actions to create and approve pull requests if required by your org policy.
-
Protect
mainbranch and require checks:ci / test-build-vetconventional-commits / semantic-pr-title
-
For
dev, if you continue pushing directly (no PRs), keep CI on push and skip PR-only protections.
Use Conventional Commit PR titles, for example:
feat: add opencode export commandfix: handle missing skills directorydocs: clarify sync scope behavior
A basic hook is available at .githooks/pre-commit and runs go vet ./....
Enable it locally:
git config core.hooksPath .githooks