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

Etiketler

git deployment ci/cd devops automation