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:
- Kod deposunu klonlar.
- Node.js ortamını hazırlar.
- Bağımlılıkları yükler.
- Uygulamayı derler.
- 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:
- GitHub depo sayfasında Settings > Secrets > Actions menüsüne gidin.
- 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!