jpskill.com
🛠️ 開発・MCP コミュニティ

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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して goreleaser.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → goreleaser フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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ライセンスキー

ワークフロー

  1. 初期化: goreleaser init.goreleaser.yaml を作成します
  2. 設定: ニーズに合わせて設定を編集します (参照ファイルを参照)
  3. 検証: goreleaser check で設定を検証します
  4. テスト: goreleaser release --snapshot --clean でローカルでテストします
  5. リリース: タグを付けてプッシュし、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

  1. Initialize: goreleaser init creates .goreleaser.yaml
  2. Configure: Edit config for your needs (see reference files)
  3. Validate: goreleaser check verifies configuration
  4. Test: goreleaser release --snapshot --clean tests locally
  5. Release: Tag and push, CI runs goreleaser release

When to Load References

  • Setting up builds: Load references/builds.md for complete build options
  • Configuring Docker: Load references/docker.md for multi-arch images
  • Linux packages: Load references/nfpm.md for deb/rpm/apk packages
  • Package managers: Load references/homebrew.md for Homebrew/Scoop/AUR/etc.
  • CI setup: Load references/ci.md for GitHub Actions/GitLab CI
  • Template syntax: Load references/templates.md for available variables
  • Complete examples: Load references/examples.md for copy-paste configs