Git Otomatik Deployment
Git repository'den otomatik deployment yapan script. Pull, build ve deploy işlemlerini otomatikleştirir.
Yayınlanma: 05.05.2024
Detaylı Bilgi
Bu script, Git repository'den otomatik deployment yapar. Pull, build ve deploy işlemlerini tek komutla gerçekleştirir. CI/CD pipeline'larında kullanılabilir.
Script Ne İşe Yarar?
Bu script, deployment sürecini otomatikleştirir:
- Git repository'yi clone eder
- Belirtilen branch'i çeker
- Build komutunu çalıştırır (opsiyonel)
- Mevcut deployment'ı yedekler
- Yeni versiyonu deploy eder
- Geçici dosyaları temizler
Neden Kullanmalısınız?
Otomatik deployment, DevOps süreçlerini hızlandırır:
- Hız: Manuel deployment yerine otomasyon
- Güvenilirlik: Tutarlı deployment süreci
- Yedekleme: Otomatik yedekleme ile güvenlik
- CI/CD: Pipeline entegrasyonu
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Script Dosyasını Oluşturun
nano git_deploy.sh
2. Çalıştırılabilir Yapın
chmod +x git_deploy.sh
3. Scripti Çalıştırın
./git_deploy.sh https://github.com/user/repo.git main /var/www/app "npm run build"
4. CI/CD Entegrasyonu
# Webhook ile otomatik deployment
# GitHub Actions, GitLab CI veya Jenkins ile kullanın Gereksinimler
Gereksinimler
- Git: Git kurulu olmalı
- Repository Erişimi: Git repository'ye erişim
- Deploy Dizini: Deployment dizinine yazma izni
Kullanım Senaryoları
Kullanım Senaryoları
1. Production Deployment
Production ortamına otomatik deployment yapın.
2. CI/CD Pipeline
CI/CD pipeline'larında kullanın.
Örnekler
Kullanım Örnekleri
Örnek 1: Node.js Uygulaması
./git_deploy.sh https://github.com/user/app.git main /var/www/app "npm install && npm run build" Kod
#!/bin/bash
# Git Automated Deployment Script
REPO_URL="$1"
BRANCH="${2:-main}"
DEPLOY_PATH="$3"
BUILD_COMMAND="$4"
if [ -z "$REPO_URL" ] || [ -z "$DEPLOY_PATH" ]; then
echo "Usage: $0 <repo_url> [branch] <deploy_path> [build_command]"
echo "Example: $0 https://github.com/user/repo.git main /var/www/app \"npm run build\""
exit 1
fi
TEMP_DIR="/tmp/deploy_$(date +%Y%m%d_%H%M%S)"
echo "======================================"
echo " GIT AUTOMATED DEPLOYMENT"
echo "======================================"
echo "Repository: $REPO_URL"
echo "Branch: $BRANCH"
echo "Deploy Path: $DEPLOY_PATH"
echo ""
# Clone repository
echo "1. Cloning repository..."
git clone -b "$BRANCH" "$REPO_URL" "$TEMP_DIR"
if [ $? -ne 0 ]; then
echo "Error: Failed to clone repository"
exit 1
fi
echo "✓ Repository cloned"
echo ""
cd "$TEMP_DIR" || exit 1
# Build if command provided
if [ -n "$BUILD_COMMAND" ]; then
echo "2. Building application..."
eval "$BUILD_COMMAND"
if [ $? -ne 0 ]; then
echo "Error: Build failed"
exit 1
fi
echo "✓ Build completed"
echo ""
fi
# Backup current deployment
if [ -d "$DEPLOY_PATH" ]; then
echo "3. Backing up current deployment..."
BACKUP_PATH="${DEPLOY_PATH}_backup_$(date +%Y%m%d_%H%M%S)"
mv "$DEPLOY_PATH" "$BACKUP_PATH"
echo "✓ Backup created: $BACKUP_PATH"
echo ""
fi
# Deploy
echo "4. Deploying..."
mkdir -p "$(dirname "$DEPLOY_PATH")"
mv "$TEMP_DIR" "$DEPLOY_PATH"
echo "✓ Deployment completed"
echo ""
# Cleanup
echo "5. Cleaning up..."
rm -rf "$TEMP_DIR"
echo "✓ Cleanup completed"
echo ""
echo "======================================"
echo " DEPLOYMENT SUCCESSFUL"
echo "======================================"
echo "Deployed to: $DEPLOY_PATH"
echo "Completed: $(date)"
Kullanım
chmod +x git_deploy.sh
./git_deploy.sh https://github.com/user/repo.git main /var/www/app "npm run build"
Sorun Giderme
Sorun Giderme
Problem: "git: command not found"
Çözüm: Git kurun:
sudo apt-get install git