⚙️ Automatización
Configuración del Entorno de Desarrollo
Genere scripts para automatizar la configuración del entorno de desarrollo para nuevos miembros del equipo
★★☆ Intermedio 20 min 13 de enero de 2025
Caso de Uso
La incorporación de nuevos desarrolladores requiere configurar entornos de desarrollo consistentes. Cowork puede crear scripts de configuración completos que automatizan todo el proceso.
Ejemplo de Prompt
Necesito crear un script de configuración de entorno de desarrollo para nuestro equipo. El proyecto requiere:
- Node.js 20.x (mediante nvm)
- Python 3.11 (mediante pyenv)
- Docker Desktop
- PostgreSQL 15
- Redis
- VS Code con extensiones específicas
- Configuración de Git
Por favor, cree:
1. Un script setup.sh para macOS
2. Un setup.ps1 para Windows
3. Un script de verificación para comprobar que todo está instalado
4. Un README con pasos manuales si es necesario
Guarde en ~/Projects/team-setup/
Qué Hace Cowork
- Análisis de Requisitos: Analiza los requisitos de software
- Generación de Scripts: Crea instaladores específicos para cada plataforma
- Orden de Dependencias: Secuencia las instalaciones correctamente
- Verificación: Agrega comprobaciones de estado para cada componente
- Documentación: Genera guías de configuración
Salida de Ejemplo
#!/bin/bash
# setup.sh - Configuración del Entorno de Desarrollo para macOS
set -e
echo "🚀 Iniciando configuración del entorno de desarrollo..."
# Colores para la salida
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
# Verificar Homebrew
if ! command -v brew &> /dev/null; then
echo "Instalando Homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
# Instalar nvm
echo "📦 Instalando 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"
# Instalar Node.js 20
echo "📦 Instalando Node.js 20..."
nvm install 20
nvm use 20
nvm alias default 20
# Instalar pyenv
echo "🐍 Instalando pyenv..."
brew install pyenv
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
eval "$(pyenv init -)"
# Instalar Python 3.11
pyenv install 3.11.0
pyenv global 3.11.0
# Instalar Docker Desktop
echo "🐳 Instalando Docker..."
brew install --cask docker
# Instalar PostgreSQL 15
echo "🐘 Instalando PostgreSQL..."
brew install postgresql@15
brew services start postgresql@15
# Instalar Redis
echo "📮 Instalando Redis..."
brew install redis
brew services start redis
# Instalar VS Code
echo "📝 Instalando VS Code..."
brew install --cask visual-studio-code
# Extensiones de VS Code
echo "Instalando extensiones de 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
# Configuración de Git
echo "🔧 Configurando Git..."
read -p "Ingrese su nombre de Git: " git_name
read -p "Ingrese su correo de 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}✅ ¡Configuración completada!${NC}"
echo "Por favor, reinicie su terminal para que todos los cambios surtan efecto."
#!/bin/bash
# verify.sh - Verificar instalación
echo "🔍 Verificando instalaciones..."
check_command() {
if command -v $1 &> /dev/null; then
echo "✅ $1: $($1 --version 2>&1 | head -1)"
else
echo "❌ $1: NO ENCONTRADO"
return 1
fi
}
check_service() {
if brew services list | grep "$1" | grep -q "started"; then
echo "✅ Servicio $1: ejecutándose"
else
echo "❌ Servicio $1: no está ejecutándose"
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 "🎉 ¡Todas las verificaciones pasaron!"
else
echo ""
echo "⚠️ Algunas verificaciones fallaron. Por favor, revise arriba."
fi
Consejos
- Mantenga los scripts idempotentes (seguros para ejecutar múltiples veces)
- Incluya fijación de versiones para reproducibilidad
- Agregue opciones de reversión/desinstalación
- Pruebe en sistemas limpios antes de compartir