goreleaser
GoReleaserを活用して、Go言語だけでなくRustやPythonなどのプロジェクトでも、リリース作業の自動化、クロスプラットフォーム対応、パッケージ管理ツールへの公開、Dockerイメージ作成、変更履歴生成などを効率的に行う設定を支援するSkill。
📜 元の英語説明(参考)
Configure and use GoReleaser for release automation. Use this skill when creating or editing .goreleaser.yaml files, setting up release pipelines, building cross-platform binaries, publishing to package managers (Homebrew, Scoop, AUR, nFPM packages), creating Docker images, or automating changelog generation. Supports Go, Rust, Zig, TypeScript (Bun/Deno), and Python (PyInstaller/UV/Poetry) projects. Also use when asked about releasing software, creating GitHub releases, or automating binary distribution.
🇯🇵 日本人クリエイター向け解説
GoReleaserを活用して、Go言語だけでなくRustやPythonなどのプロジェクトでも、リリース作業の自動化、クロスプラットフォーム対応、パッケージ管理ツールへの公開、Dockerイメージ作成、変更履歴生成などを効率的に行う設定を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o goreleaser.zip https://jpskill.com/download/8678.zip && unzip -o goreleaser.zip && rm goreleaser.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/8678.zip -OutFile "$d\goreleaser.zip"; Expand-Archive "$d\goreleaser.zip" -DestinationPath $d -Force; ri "$d\goreleaser.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
goreleaser.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
goreleaserフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
GoReleaser Skill
GoReleaserは、ソフトウェアプロジェクトのリリースプロセスを自動化します。バイナリのビルド、アーカイブの作成、パッケージマネージャーへの公開、Dockerイメージのビルド、および変更履歴の生成を行います。
クイックリファレンス
| タスク | 参照ファイル |
|---|---|
| ビルド設定 | references/builds.md |
| アーカイブ (tar.gz, zip) | references/archives.md |
| Dockerイメージ | references/docker.md |
| Linuxパッケージ (deb/rpm) | references/nfpm.md |
| Homebrew/Scoop/AUR | references/homebrew.md |
| 署名と公証 | references/signing.md |
| 変更履歴の生成 | references/changelog.md |
| CI/CD連携 | references/ci.md |
| テンプレート変数 | references/templates.md |
| 完全な例 | references/examples.md |
必須コマンド
# 新しい設定を初期化
goreleaser init
# 設定を検証
goreleaser check
# ローカルでビルドをテスト (公開はしない)
goreleaser release --snapshot --clean
# リリースを作成 (通常はCIで実行)
goreleaser release
設定ファイル
GoReleaserは、.goreleaser.yaml (または .goreleaser.yml) を使用します。スキーマ検証を有効にします。
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2
# プロジェクト名 (デフォルトはディレクトリ名)
project_name: myapp
最小限のGo設定
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2
builds:
- main: ./cmd/myapp
binary: myapp
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
ldflags:
- -s -w
- -X main.version={{.Version}}
archives:
- formats: [tar.gz]
format_overrides:
- goos: windows
formats: [zip]
changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
ビルドターゲット
Go (デフォルト)
builds:
- builder: go # optional, default
main: ./cmd/app
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
goarm: ["6", "7"] # for ARM builds
Rust
builds:
- builder: rust
targets:
- x86_64-unknown-linux-gnu
- x86_64-apple-darwin
- aarch64-apple-darwin
Zig
builds:
- builder: zig
targets:
- x86_64-linux-gnu
- x86_64-macos
- aarch64-macos
事前ビルドされたバイナリ
builds:
- builder: prebuilt
prebuilt:
path: dist/myapp_{{ .Os }}_{{ .Arch }}/myapp{{ .Ext }}
一般的なパターン
バージョンインジェクション (Go)
builds:
- ldflags:
- -X main.version={{.Version}}
- -X main.commit={{.Commit}}
- -X main.date={{.Date}}
CGOを無効にする
builds:
- env:
- CGO_ENABLED=0
複数のバイナリ
builds:
- id: cli
main: ./cmd/cli
binary: myapp
- id: server
main: ./cmd/server
binary: myapp-server
公開
Homebrew Tap
brews:
- repository:
owner: myorg
name: homebrew-tap
homepage: https://example.com
description: "My application"
Dockerイメージ
dockers_v2:
- dockerfile: Dockerfile
images:
- "ghcr.io/myorg/myapp:{{ .Tag }}"
- "ghcr.io/myorg/myapp:latest"
GitHub Release
release:
github:
owner: myorg
name: myrepo
draft: false
prerelease: auto
環境変数
| 変数 | 目的 |
|---|---|
GITHUB_TOKEN |
GitHub APIアクセス |
GITLAB_TOKEN |
GitLab APIアクセス |
GITEA_TOKEN |
Gitea APIアクセス |
GORELEASER_KEY |
Proライセンスキー |
ワークフロー
- 初期化:
goreleaser initで.goreleaser.yamlを作成します - 設定: ニーズに合わせて設定を編集します (参照ファイルを参照)
- 検証:
goreleaser checkで設定を検証します - テスト:
goreleaser release --snapshot --cleanでローカルでテストします - リリース: タグを付けてプッシュし、CIで
goreleaser releaseを実行します
参照を読み込むタイミング
- ビルドの設定: 完全なビルドオプションについては
references/builds.mdを読み込みます - Dockerの設定: マルチアーキテクチャイメージについては
references/docker.mdを読み込みます - Linuxパッケージ: deb/rpm/apkパッケージについては
references/nfpm.mdを読み込みます - パッケージマネージャー: Homebrew/Scoop/AURなどについては
references/homebrew.mdを読み込みます - CI設定: GitHub Actions/GitLab CIについては
references/ci.mdを読み込みます - テンプレート構文: 利用可能な変数については
references/templates.mdを読み込みます - 完全な例: コピー&ペースト可能な設定については
references/examples.mdを読み込みます
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
GoReleaser Skill
GoReleaser automates the release process for software projects. It builds binaries, creates archives, publishes to package managers, builds Docker images, and generates changelogs.
Quick Reference
| Task | Reference File |
|---|---|
| Build configuration | references/builds.md |
| Archives (tar.gz, zip) | references/archives.md |
| Docker images | references/docker.md |
| Linux packages (deb/rpm) | references/nfpm.md |
| Homebrew/Scoop/AUR | references/homebrew.md |
| Signing & notarization | references/signing.md |
| Changelog generation | references/changelog.md |
| CI/CD integration | references/ci.md |
| Template variables | references/templates.md |
| Complete examples | references/examples.md |
Essential Commands
# Initialize new config
goreleaser init
# Validate configuration
goreleaser check
# Test build locally (no publish)
goreleaser release --snapshot --clean
# Create release (usually run in CI)
goreleaser release
Configuration File
GoReleaser uses .goreleaser.yaml (or .goreleaser.yml). Enable schema validation:
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2
# Project name (defaults to directory name)
project_name: myapp
Minimal Go Configuration
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2
builds:
- main: ./cmd/myapp
binary: myapp
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
ldflags:
- -s -w
- -X main.version={{.Version}}
archives:
- formats: [tar.gz]
format_overrides:
- goos: windows
formats: [zip]
changelog:
sort: asc
filters:
exclude:
- "^docs:"
- "^test:"
Build Targets
Go (default)
builds:
- builder: go # optional, default
main: ./cmd/app
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
goarm: ["6", "7"] # for ARM builds
Rust
builds:
- builder: rust
targets:
- x86_64-unknown-linux-gnu
- x86_64-apple-darwin
- aarch64-apple-darwin
Zig
builds:
- builder: zig
targets:
- x86_64-linux-gnu
- x86_64-macos
- aarch64-macos
Prebuilt Binaries
builds:
- builder: prebuilt
prebuilt:
path: dist/myapp_{{ .Os }}_{{ .Arch }}/myapp{{ .Ext }}
Common Patterns
Version Injection (Go)
builds:
- ldflags:
- -X main.version={{.Version}}
- -X main.commit={{.Commit}}
- -X main.date={{.Date}}
CGO Disabled
builds:
- env:
- CGO_ENABLED=0
Multiple Binaries
builds:
- id: cli
main: ./cmd/cli
binary: myapp
- id: server
main: ./cmd/server
binary: myapp-server
Publishing
Homebrew Tap
brews:
- repository:
owner: myorg
name: homebrew-tap
homepage: https://example.com
description: "My application"
Docker Images
dockers_v2:
- dockerfile: Dockerfile
images:
- "ghcr.io/myorg/myapp:{{ .Tag }}"
- "ghcr.io/myorg/myapp:latest"
GitHub Release
release:
github:
owner: myorg
name: myrepo
draft: false
prerelease: auto
Environment Variables
| Variable | Purpose |
|---|---|
GITHUB_TOKEN |
GitHub API access |
GITLAB_TOKEN |
GitLab API access |
GITEA_TOKEN |
Gitea API access |
GORELEASER_KEY |
Pro license key |
Workflow
- Initialize:
goreleaser initcreates.goreleaser.yaml - Configure: Edit config for your needs (see reference files)
- Validate:
goreleaser checkverifies configuration - Test:
goreleaser release --snapshot --cleantests locally - Release: Tag and push, CI runs
goreleaser release
When to Load References
- Setting up builds: Load
references/builds.mdfor complete build options - Configuring Docker: Load
references/docker.mdfor multi-arch images - Linux packages: Load
references/nfpm.mdfor deb/rpm/apk packages - Package managers: Load
references/homebrew.mdfor Homebrew/Scoop/AUR/etc. - CI setup: Load
references/ci.mdfor GitHub Actions/GitLab CI - Template syntax: Load
references/templates.mdfor available variables - Complete examples: Load
references/examples.mdfor copy-paste configs