Yazılım geliştirme süreçlerinde, dağıtım işlemleri sırasında ekibin bilgilendirilmesi, sorunsuz iş birliği ve hata takibi için kritik öneme sahiptir. GitHub Actions ile Slack’i entegre ederek, dağıtım sürecinin başlangıcı, başarılı bir şekilde tamamlanması veya hata durumları için ekibinize otomatik bildirimler gönderebilirsiniz. Bu makalede, bunu nasıl yapabileceğinizi adım adım anlatıyoruz.
Neden Slack Bildirimleri?
Slack bildirimleri şu avantajları sağlar:
- Gerçek Zamanlı Güncellemeler: Dağıtım durumlarını anında ekibinizle paylaşabilirsiniz.
- Kolay Takip: Hata durumlarında GitHub Actions loglarına hızlı erişim sağlayabilirsiniz.
- Görünürlük Artışı: Tüm ekip üyeleri sürecin farkında olur.
GitHub Actions ile Slack Bildirimleri Nasıl Eklenir?
1. Slack Incoming Webhook Oluşturun
- Slack API sayfasına giderek yeni bir uygulama oluşturun.
- Incoming Webhooks özelliğini etkinleştirin.
- Bir webhook URL’si oluşturun ve bildirimlerin gönderileceği kanalı seçin.
2. Webhook URL’sini GitHub Secrets’a Ekleyin
- GitHub projenizde Settings > Secrets and variables > Actions bölümüne gidin.
- New repository secret butonuna tıklayın.
- Secret adını
SLACK_WEBHOOK_URL
olarak belirleyin ve Slack’ten aldığınız webhook URL’sini ekleyin.
3. GitHub Actions Workflow’unuzu Güncelleyin
Aşağıda, Slack bildirimlerini içeren bir GitHub Actions örneği verilmiştir:
name: Deploy to VPS
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Notify Slack on Workflow Start
run: |
curl -X POST -H 'Content-type: application/json' \
--data "{
\"text\": \"*FrontrowAI Web*: 🚀 Dağıtım süreci başladı.\",
\"attachments\": [
{
\"text\": \"GitHub Actions loglarını görüntülemek için: <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|Tıklayın>\"
}
]
}" \
${{ secrets.SLACK_WEBHOOK_URL }}
- name: Checkout code
uses: actions/checkout@v3
- name: Add SSH key
uses: webfactory/ssh-agent@v0.5.3
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Deploy to VPS
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.DROPLET_USERNAME }}@${{ secrets.DROPLET_IP }} "bash -s" << 'EOF'
cd /path/to/project
git pull origin main
docker compose down
docker compose up -d
EOF
- name: Notify Slack on Success
if: success()
run: |
curl -X POST -H 'Content-type: application/json' \
--data "{
\"text\": \"*FrontrowAI Web*: ✅ Dağıtım başarıyla tamamlandı.\",
\"attachments\": [
{
\"text\": \"GitHub Actions loglarını görüntülemek için: <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|Tıklayın>\"
}
]
}" \
${{ secrets.SLACK_WEBHOOK_URL }}
- name: Notify Slack on Failure
if: failure()
run: |
curl -X POST -H 'Content-type: application/json' \
--data "{
\"text\": \"*FrontrowAI Web*: ❌ Dağıtım başarısız oldu. Lütfen logları kontrol edin.\",
\"attachments\": [
{
\"text\": \"GitHub Actions loglarını görüntülemek için: <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|Tıklayın>\"
}
]
}" \
${{ secrets.SLACK_WEBHOOK_URL }}
Bu Workflow’un Özellikleri
- Gerçek Zamanlı Slack Bildirimleri:
• Başlangıç: 🚀 Dağıtım süreci başladı.
• Başarı: ✅ Dağıtım başarıyla tamamlandı.
• Hata: ❌ Dağıtım başarısız oldu. - GitHub Actions Log Linki:
• Her bildirim, ilgili loglara hızlı erişim için bir bağlantı içerir.
Sonuç
Slack ve GitHub Actions entegrasyonu, dağıtım süreçlerinizi daha görünür ve etkili hale getirir. Ekibinizi anlık olarak bilgilendirebilir, hata durumlarında hızlı aksiyon alabilirsiniz. Bu adımları uygulayarak projelerinizi daha verimli bir şekilde yönetebilirsiniz.
Member discussion: