Merhaba sevgili okurlar! Bu blog yazısında, GitHub Actions kullanarak otomatik dağıtım süreçlerini nasıl kuracağınızı adım adım anlatacağım. GitHub Actions, yazılım geliştirme iş akışlarınızı (workflow) otomatikleştirmenizi sağlayan güçlü bir araçtır. Hadi başlayalım!

Adım 1: GitHub Actions’ı Etkinleştirme

Öncelikle, GitHub deposuna gidin ve GitHub Actions’ı etkinleştirin. Bunun için, depo ana sayfasında Actions sekmesine tıklayın. GitHub, birkaç hazır şablon sunar; ancak biz kendi iş akışımızı oluşturacağız.

Adım 2: İş Akışı (Workflow) Dosyasını Oluşturma

GitHub Actions iş akışları, .github/workflows dizininde YAML dosyaları olarak tanımlanır. Bu dizini ve iş akışı dosyasını oluşturun:

mkdir -p .github/workflows
touch .github/workflows/deploy.yml

Adım 3: İş Akışı Dosyasını Tanımlama

deploy.yml dosyasını açın ve aşağıdaki içeriği ekleyin. Bu örnek, her main dalına (branch) yapılan push işlemi sonrasında bir uygulamayı otomatik olarak dağıtır:

name: Deploy Application

on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'

- name: Install Dependencies
run: npm install

- name: Run Build
run: npm run build

- name: Deploy to Server
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_USER: ${{ secrets.SERVER_USER }}
SERVER_HOST: ${{ secrets.SERVER_HOST }}
SERVER_PATH: ${{ secrets.SERVER_PATH }}
run: |
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_HOST "mkdir -p $SERVER_PATH"
rsync -avz --delete-after ./dist/ $SERVER_USER@$SERVER_HOST:$SERVER_PATH

Bu iş akışı dosyası, main dalına yapılan her push işleminde çalışır ve aşağıdaki adımları gerçekleştirir:

  1. Kod deposunu klonlar.
  2. Node.js ortamını hazırlar.
  3. Bağımlılıkları yükler.
  4. Uygulamayı derler.
  5. Derlenmiş dosyaları belirtilen sunucuya dağıtır.

Adım 4: Gizli Anahtarları (Secrets) Ayarlama

GitHub Actions, gizli anahtarları yönetmek için GitHub Secrets özelliğini kullanır. Sunucuya bağlanmak için gerekli bilgileri gizli anahtar olarak ayarlayın:

  1. GitHub depo sayfasında Settings > Secrets > Actions menüsüne gidin.
  2. Aşağıdaki gizli anahtarları ekleyin:
    • SSH_PRIVATE_KEY: Sunucunuza erişim sağlayan özel SSH anahtarı.
    • SERVER_USER: Sunucu kullanıcı adı.
    • SERVER_HOST: Sunucu IP adresi veya alan adı.
    • SERVER_PATH: Dosyaların dağıtılacağı yol.

Adım 5: İş Akışını Çalıştırma

Yukarıdaki adımları tamamladıktan sonra, main dalına bir push işlemi yaparak iş akışını tetikleyin. GitHub Actions sekmesinde, iş akışınızın durumunu izleyebilirsiniz. Tüm adımlar başarılı bir şekilde tamamlandığında, uygulamanız belirtilen sunucuda dağıtılmış olacaktır.

Tebrikler! GitHub Actions kullanarak otomatik dağıtım süreçlerini başarıyla kurdunuz. Bu sayede, kod değişikliklerinizi hızlı ve güvenilir bir şekilde dağıtabilirsiniz. Sorularınız olursa yorumlarda belirtmeyi unutmayın!