GoReleaser-Wizard

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2026 License: MIT

README ΒΆ

GoReleaser Wizard πŸš€

An interactive CLI tool that generates production-ready GoReleaser configurations for Go projects.

Go Version GoReleaser

Stop copy-pasting configs. Stop guessing at YAML. Get a production-ready GoReleaser setup with one command.

✨ Features

  • 🎯 Interactive wizard - Rich CLI prompts guide you through every option
  • 🧠 Smart defaults - Detects your project structure automatically
  • πŸš€ GitHub Actions included - Complete CI/CD pipeline ready to go
  • πŸ“¦ Multi-platform builds - Linux, macOS, Windows, ARM, and more
  • 🐳 Docker support - Multi-stage container builds with security best practices
  • 🍺 Homebrew formulas - Automatic package manager formula generation
  • πŸ”’ Security built-in - Code signing, SBOM generation, non-root containers
  • βœ… Validation - Comprehensive configuration checking with detailed reporting
  • πŸ“‹ Preview mode - See generated configurations before writing files
  • πŸ”„ Rollback support - Automatic cleanup if generation fails

🎬 Quick Start

# Install
go install github.com/LarsArtmann/GoReleaser-Wizard/cmd/goreleaser-wizard@latest

# Run the wizard
goreleaser-wizard init

# That's it! Your .goreleaser.yaml is ready

πŸ“Έ Demo

$ goreleaser-wizard init
πŸš€ GoReleaser Configuration Wizard
Let's create the perfect GoReleaser config for your project!

? Project Name β€Ί my-awesome-cli
? Project Description β€Ί A fantastic CLI tool
? Project Type β€Ί CLI Application
? Binary Name β€Ί my-awesome-cli
? Main Package Path β€Ί ./cmd/my-awesome-cli

? Target Platforms β€Ί βœ“ linux βœ“ darwin βœ“ windows
? Target Architectures β€Ί βœ“ amd64 βœ“ arm64
? Enable CGO? β€Ί No (recommended)
? Embed Version Info? β€Ί Yes (recommended)

? Git Provider β€Ί GitHub
? Docker Images? β€Ί Yes
? Code Signing? β€Ί Yes
? Generate SBOM? β€Ί Yes

βœ“ Created .goreleaser.yaml
βœ“ Created .github/workflows/release.yml

✨ Setup Complete!

πŸ› οΈ Installation

Using Go
go install github.com/LarsArtmann/GoReleaser-Wizard/cmd/goreleaser-wizard@latest
From Source
git clone https://github.com/LarsArtmann/GoReleaser-Wizard.git
cd GoReleaser-Wizard
go build -o goreleaser-wizard ./cmd/goreleaser-wizard
Download Binary

Download the latest release from the releases page.

πŸ“– Usage

The wizard will guide you through creating a perfect configuration:

goreleaser-wizard init

Options:

  • --force - Overwrite existing configuration
  • --minimal - Create minimal configuration
  • --pro - Include GoReleaser Pro features
Non-Interactive Mode

Perfect for CI/CD pipelines:

goreleaser-wizard generate \
  --name my-project \
  --binary my-app \
  --platforms linux,darwin,windows \
  --docker \
  --github-action
Validate Configuration

Check your existing GoReleaser configuration:

goreleaser-wizard validate

# With fixes
goreleaser-wizard validate --fix

# Verbose output
goreleaser-wizard validate --verbose

🎯 What It Creates

.goreleaser.yaml
  • Optimized build configuration
  • Multi-platform support
  • Archive generation
  • Checksums and signatures
  • Changelog generation
  • Release configuration
.github/workflows/release.yml
  • Automated releases on tags
  • Docker image building
  • Code signing with cosign
  • SBOM generation
  • Multi-platform builds

πŸ—οΈ Project Types

The wizard adapts to your project:

  • CLI Application - Single binary with version info
  • Web Service - Includes Docker configuration
  • Library with CLI - Focuses on the CLI component
  • Multiple Binaries - Configures multiple build targets

πŸ”§ Advanced Features

GoReleaser Pro Support

Enable Pro features during setup:

goreleaser-wizard init --pro

Adds support for:

  • Custom publishers
  • Advanced templating
  • Nightlies
  • Docker manifests
  • And more!
Docker Integration

When Docker is enabled, the wizard:

  • Detects your registry (ghcr.io, Docker Hub, etc.)
  • Configures multi-platform images
  • Sets up proper labels
  • Handles authentication in CI/CD
Package Managers

Built-in support for:

  • Homebrew - macOS/Linux formula with automatic naming
  • Snap - Linux snap packages (planned)
  • Scoop - Windows package manager (planned)
  • AUR - Arch Linux (planned)

πŸ§ͺ Testing Your Configuration

After generating your configuration:

# 1. Validate the configuration
goreleaser-wizard validate

# 2. Test build locally
goreleaser build --snapshot --clean

# 3. Create a tag
git tag -a v0.1.0 -m 'First release'

# 4. Push to trigger release
git push origin v0.1.0

πŸ“š Examples

Minimal CLI Tool
goreleaser-wizard generate \
  --name simple-cli \
  --binary simple \
  --platforms linux,darwin
goreleaser-wizard generate \
  --name api-server \
  --binary server \
  --docker \
  --signing \
  --github-action \
  --platforms linux,darwin,windows \
  --architectures amd64,arm64
Library with CLI
goreleaser-wizard init --minimal
# Then select "Library with CLI" in the wizard

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • GoReleaser - The amazing release automation tool
  • Charm - Beautiful terminal UI components
  • Cobra - CLI framework
  • Viper - Configuration management

Made with ❀️ to simplify Go releases

Directories ΒΆ

Path Synopsis
cmd
goreleaser-wizard command
CRITICAL ARCHITECTURE TODO: This file is 848 lines - SPLIT IMMEDIATELY into: 1.
CRITICAL ARCHITECTURE TODO: This file is 848 lines - SPLIT IMMEDIATELY into: 1.
internal
config
Package config provides configuration management using koanf.
Package config provides configuration management using koanf.
domain
CRITICAL ARCHITECTURE TODO: This file is 429 lines - SPLIT IMMEDIATELY by entity: 1.
CRITICAL ARCHITECTURE TODO: This file is 429 lines - SPLIT IMMEDIATELY by entity: 1.
git
pkg
errors
Package errors provides custom error types and error handling utilities.
Package errors provides custom error types and error handling utilities.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL