name: go-build-runner description: Go バックエンドのビルドを実行し、簡潔なサマリーを返却する。「go build」「ビルド」「コンパイル」「バイナリ」などのキーワードで自動起動。メインコンテキストにログを流さない隔離実行。
Go ビルドランナー
Go バックエンドのバイナリビルドを実行する。結果はサマリーのみ返却(成功/失敗、エラー、警告)。
ワークフロー
1. プロジェクト検出
以下の優先順位で Go プロジェクトを検出:
# 1. 環境変数 GO_BACKEND_DIR が設定されている場合
if [[ -n "$GO_BACKEND_DIR" && -f "$GO_BACKEND_DIR/go.mod" ]]; then
# GO_BACKEND_DIR を使用
fi
# 2. カレントディレクトリに go.mod がある場合
ls go.mod 2>/dev/null
# 3. 一般的なサブディレクトリ(backend, server, api, go)
for dir in backend server api go; do
ls "$dir/go.mod" 2>/dev/null
done
# 4. 再帰検索(深さ2まで)
find . -maxdepth 2 -name "go.mod" -type f | head -1
2. main.go の検出
以下の優先順位で main.go を検出:
- 環境変数
GO_MAIN_PATHが設定されている場合はそれを使用 - 一般的なパス:
cmd/server/main.go,cmd/api/main.go,cmd/main.go,main.go cmd/以下を検索- ルートの
main.go
3. ビルド実行
cd <backend_dir>
# 出力ディレクトリ作成
mkdir -p bin
# バイナリ名(GO_BIN_NAME 環境変数 or デフォルト "server")
BIN_NAME="${GO_BIN_NAME:-server}"
# ビルド
go build -o "bin/$BIN_NAME" <main_path>
出力フォーマット
成功時:
## Build Succeeded
- Project: <directory>
- Binary: bin/<name>
- Main: <main_path>
失敗時:
## Build Failed
- Project: <directory>
### Errors
<error messages>
### Fix Suggestions
<recommendations>
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
GO_BACKEND_DIR |
バックエンドディレクトリ | 自動検出 |
GO_MAIN_PATH |
main.go のパス | cmd/server/main.go |
GO_BIN_NAME |
出力バイナリ名 | server |
ルール
- フルビルドログは絶対に出力しない
- エラーのみアクション可能な詳細付きで報告
- ビルド成功時は簡潔なサマリーのみ