Build
Go プロジェクトをビルドします。クロスコンパイル、再現可能ビルド、リンカーフラグによるバージョン埋め込みに対応。
引数
- •
--os <os>: ターゲット OS を指定 (linux, darwin, windows) - •
--arch <arch>: ターゲットアーキテクチャを指定 (amd64, arm64) - •
--trimpath: 再現可能ビルドのため絶対パスを削除 - •
--help: ヘルプを表示
実行手順
1. タスクランナー検出
bash
ls -la Taskfile.yml Makefile 2>/dev/null
検出されるタスク名の例:
- •
build,compile,go-build - •
build:linux,build:windows
2. ビルド実行
bash
# タスクランナーがある場合 task build make build # 基本的なビルド go build ./... # 特定のエントリーポイントをビルド go build -o bin/app ./cmd/app # クロスコンパイル GOOS=linux GOARCH=amd64 go build -o bin/app-linux ./cmd/app GOOS=darwin GOARCH=arm64 go build -o bin/app-darwin ./cmd/app GOOS=windows GOARCH=amd64 go build -o bin/app.exe ./cmd/app # 再現可能ビルド go build -trimpath -o bin/app ./cmd/app # バージョン情報埋め込み go build -ldflags "-X main.version=1.0.0 -X main.commit=$(git rev-parse HEAD)" -o bin/app ./cmd/app
3. 結果レポート
code
✅ ビルド完了
出力ファイル: bin/app
ターゲット: {GOOS}/{GOARCH}
サイズ: {SIZE} MB
ビルドオプション:
- trimpath: {有効/無効}
- ldflags: {フラグ内容}
クロスコンパイル対応表
| OS | GOOS | サポートアーキテクチャ |
|---|---|---|
| Linux | linux | amd64, arm64, arm |
| macOS | darwin | amd64, arm64 |
| Windows | windows | amd64, arm64 |
リンカーフラグ (-ldflags)
| フラグ | 説明 |
|---|---|
-X main.version=1.0.0 | バージョン情報を埋め込み |
-X main.commit=abc123 | コミットハッシュを埋め込み |
-s | シンボルテーブルを削除(バイナリサイズ削減) |
-w | DWARF デバッグ情報を削除(バイナリサイズ削減) |
重要な注意事項
- •✅ プロジェクトの既存設定を優先
- •✅ クロスコンパイル時は GOOS/GOARCH を明示
- •✅ 再現可能ビルドには -trimpath を使用
- •✅ クロスコンパイル時は CGO_ENABLED=0 を設定
- •✅ リリースビルドでは -ldflags "-s -w" でサイズ削減