⚙️ 自動化

開発環境セットアップ

新しいチームメンバーの開発環境構築を自動化するスクリプトを生成します

★★☆ 中級 20 min 2025年1月13日

ユースケース

新しい開発者のオンボーディングには、一貫した開発環境のセットアップが必要です。Cowork は、プロセス全体を自動化する包括的なセットアップスクリプトを作成できます。

プロンプト例

チーム用の開発環境セットアップスクリプトを作成したいです。プロジェクトには以下が必要です:

- Node.js 20.x(nvm 経由)
- Python 3.11(pyenv 経由)
- Docker Desktop
- PostgreSQL 15
- Redis
- VS Code と特定の拡張機能
- Git 設定

以下を作成してください:
1. macOS 用の setup.sh スクリプト
2. Windows 用の setup.ps1
3. すべてがインストールされているか確認する検証スクリプト
4. 必要な場合の手動手順を含む README

~/Projects/team-setup/ に保存してください

Cowork の動作

  1. 要件分析: ソフトウェア要件を解析します
  2. スクリプト生成: プラットフォーム固有のインストーラーを作成します
  3. 依存関係の順序: インストールを正しい順序で実行します
  4. 検証: 各コンポーネントのヘルスチェックを追加します
  5. ドキュメント: セットアップガイドを生成します

出力サンプル

#!/bin/bash
# setup.sh - macOS 開発環境セットアップ

set -e

echo "開発環境のセットアップを開始します..."

# 出力用の色
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'

# Homebrew の確認
if ! command -v brew &> /dev/null; then
    echo "Homebrew をインストール中..."
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi

# nvm のインストール
echo "nvm をインストール中..."
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

# Node.js 20 のインストール
echo "Node.js 20 をインストール中..."
nvm install 20
nvm use 20
nvm alias default 20

# pyenv のインストール
echo "pyenv をインストール中..."
brew install pyenv
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
eval "$(pyenv init -)"

# Python 3.11 のインストール
pyenv install 3.11.0
pyenv global 3.11.0

# Docker Desktop のインストール
echo "Docker をインストール中..."
brew install --cask docker

# PostgreSQL 15 のインストール
echo "PostgreSQL をインストール中..."
brew install postgresql@15
brew services start postgresql@15

# Redis のインストール
echo "Redis をインストール中..."
brew install redis
brew services start redis

# VS Code のインストール
echo "VS Code をインストール中..."
brew install --cask visual-studio-code

# VS Code 拡張機能
echo "VS Code 拡張機能をインストール中..."
EXTENSIONS=(
    "ms-python.python"
    "dbaeumer.vscode-eslint"
    "esbenp.prettier-vscode"
    "ms-azuretools.vscode-docker"
    "eamodio.gitlens"
    "bradlc.vscode-tailwindcss"
)

for ext in "${EXTENSIONS[@]}"; do
    code --install-extension "$ext" || true
done

# Git 設定
echo "Git を設定中..."
read -p "Git ユーザー名を入力: " git_name
read -p "Git メールアドレスを入力: " git_email
git config --global user.name "$git_name"
git config --global user.email "$git_email"
git config --global init.defaultBranch main
git config --global pull.rebase true

echo -e "${GREEN}セットアップ完了!${NC}"
echo "すべての変更を反映するため、ターミナルを再起動してください。"
#!/bin/bash
# verify.sh - インストール確認

echo "インストールを確認中..."

check_command() {
    if command -v $1 &> /dev/null; then
        echo "$1: $($1 --version 2>&1 | head -1)"
    else
        echo "$1: 見つかりません"
        return 1
    fi
}

check_service() {
    if brew services list | grep "$1" | grep -q "started"; then
        echo "$1 サービス: 実行中"
    else
        echo "$1 サービス: 停止中"
        return 1
    fi
}

FAILED=0

check_command node || FAILED=1
check_command npm || FAILED=1
check_command python3 || FAILED=1
check_command docker || FAILED=1
check_command psql || FAILED=1
check_command redis-cli || FAILED=1
check_command code || FAILED=1
check_command git || FAILED=1

check_service postgresql@15 || FAILED=1
check_service redis || FAILED=1

if [ $FAILED -eq 0 ]; then
    echo ""
    echo "すべてのチェックに合格しました!"
else
    echo ""
    echo "一部のチェックが失敗しました。上記を確認してください。"
fi

ヒント

  • スクリプトは冪等性を保つ(複数回実行しても安全)
  • 再現性のためにバージョンを固定する
  • ロールバック/アンインストールオプションを含める
  • 配布前にクリーンなシステムでテストする