- Add sdk.md: SDK generation and API diff commands - Add dev.md: DevOps portable environment (100+ tools) - Add doctor.md: Environment health check - Add search.md: GitHub search and install commands - Update build.md: Add code signing flags (--no-sign, --notarize) - Update release.md: Add --target sdk flag - Update index.md: Organize commands by category Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.3 KiB
core release
Build and publish releases to GitHub, npm, Homebrew, Scoop, AUR, Chocolatey, Docker, and LinuxKit.
Usage
core release [flags]
Flags
| Flag | Description |
|---|---|
--dry-run |
Preview what would be published |
--version |
Override version (default: git tag) |
--target |
Release target: sdk for SDK-only release |
--draft |
Create release as draft |
--prerelease |
Mark release as prerelease |
Quick Start
# Initialize release config
core release init
# Preview release
core release --dry-run
# Release
core release
# SDK-only release
core release --target sdk
SDK Release
Generate SDKs without building binaries:
# Generate SDKs with version from git tag
core release --target sdk
# Explicit version
core release --target sdk --version v1.2.3
# Preview
core release --target sdk --dry-run
This will:
- Determine version from git tags (or
--versionflag) - Run breaking change detection if configured
- Generate SDKs for all configured languages
- Output to
sdk/directory
See SDK commands for more details.
Publishers
GitHub Releases
Uploads artifacts and changelog to GitHub Releases.
publishers:
- type: github
prerelease: false
draft: false
npm
Publishes binary wrapper that downloads correct platform binary.
publishers:
- type: npm
package: "@myorg/myapp"
access: public
Requires NPM_TOKEN environment variable.
Homebrew
Generates formula and commits to tap repository.
publishers:
- type: homebrew
tap: myorg/homebrew-tap
formula: myapp # optional, defaults to project name
For official Homebrew PR:
publishers:
- type: homebrew
tap: myorg/homebrew-tap
official:
enabled: true
output: dist/homebrew
Scoop
Generates manifest and commits to bucket repository.
publishers:
- type: scoop
bucket: myorg/scoop-bucket
AUR
Generates PKGBUILD and pushes to AUR.
publishers:
- type: aur
maintainer: "Your Name <email@example.com>"
Chocolatey
Generates NuSpec and optionally pushes to Chocolatey.
publishers:
- type: chocolatey
push: false # generate only
Set push: true and CHOCOLATEY_API_KEY to publish.
Docker
Builds and pushes multi-arch Docker images.
publishers:
- type: docker
registry: ghcr.io
image: myorg/myapp
platforms:
- linux/amd64
- linux/arm64
tags:
- latest
- "{{.Version}}"
LinuxKit
Builds immutable LinuxKit images.
publishers:
- type: linuxkit
config: .core/linuxkit/server.yml
formats:
- iso
- qcow2
- docker # Immutable container
platforms:
- linux/amd64
- linux/arm64
Full Example
See examples/full-release.yaml for a complete configuration.
Changelog
Changelog is auto-generated from conventional commits:
feat: Add new feature → Features
fix: Fix bug → Bug Fixes
perf: Improve performance → Performance
refactor: Refactor code → Refactoring
Configure in .core/release.yaml:
changelog:
include:
- feat
- fix
- perf
exclude:
- chore
- docs
- test