php-framework/docs/packages/go/cmd/release.md
Snider 632bca9111 feat(docs): restructure with PHP/Go framework sections
- Add auto-discovery sidebar with nested directory support
- Create packages index with search and grid layout
- Move framework docs to packages/php/
- Update nav: Guide | PHP | Go | Packages | Security

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:47:50 +00:00

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:

  1. Determine version from git tags (or --version flag)
  2. Run breaking change detection if configured
  3. Generate SDKs for all configured languages
  4. 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