GitHub Actions Nedir?
GitHub Actions, yazılım geliştirme sürecinizi otomatikleştirebilmenizi sağlayan, GitHub üzerinde entegre çalışan bir CI/CD aracıdır. Kodunuz üzerinde yaptığınız değişiklikleri test etmek, derlemek, dağıtım yapmak gibi işlemleri otomatikleştirerek zaman kazanmanızı sağlar. En güzel tarafı ise, GitHub üzerindeki reposu ile tam uyumlu çalışmasıdır. Bu, size en doğal entegrasyon deneyimini sunar.
CI/CD (Sürekli Entegrasyon ve Sürekli Dağıtım) terimleriyle sıkça karşılaşırsınız. GitHub Actions, CI/CD süreçlerini çok daha verimli hale getirir. Artık her seferinde manuel olarak testleri çalıştırmak zorunda kalmazsınız, her şey otomatik olarak devreye girer.
GitHub Actions Nasıl Kullanılır?
Başlamadan önce, GitHub hesabınızda bir depo oluşturmuş olmanız gerekir. Eğer bir projeniz yoksa, GitHub'a giriş yapın ve yeni bir repository oluşturun. Şimdi, GitHub Actions'ı kurmaya başlıyoruz.
1. Yeni Bir Workflow (İş Akışı) Oluşturma
GitHub Actions, çalışma akışları (workflows) adı verilen dosyalarla yönetilir. Her workflow, belirli bir amaca hizmet eder; örneğin testleri çalıştırmak, derlemek veya dağıtımı yapmak.
Depo sayfanıza gidin ve sağ üst köşede bulunan "Actions" sekmesine tıklayın. Buradan, GitHub'ın sunduğu hazır şablonlardan birini seçebilir veya sıfırdan bir workflow dosyası oluşturabilirsiniz.
2. Workflow Dosyasını Yazma
GitHub Actions workflow dosyaları, YAML formatında yazılır. Bu dosya, hangi adımların (steps) hangi sırayla yapılacağını belirler. Aşağıda basit bir workflow örneği yer alıyor:
name: Node.js CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repository
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 tests
run: npm test
Bu örnek, bir Node.js projesinde testlerin çalıştırılmasını sağlar. İş akışı, `main` dalına yapılan her `push` ve `pull_request` olayında tetiklenir.
Workflow Çalıştırma ve Sonuçları Görüntüleme
Workflow dosyasını oluşturduktan sonra, bu dosyadaki adımların çalışması için bir tetikleyici belirlemeniz gerekiyor. Örneğin, bir `push` işlemi gerçekleştiğinde, GitHub Actions tetiklenir ve belirttiğiniz adımlar sırasıyla çalıştırılır.
Workflow'larınızı çalıştırmak için depoyu `push` edebilirsiniz. GitHub Actions otomatik olarak bu işlemi algılar ve süreci başlatır. Çalışmaların durumunu görmek için, repository'nizin "Actions" sekmesine giderek her bir job'un başarı durumunu takip edebilirsiniz.
GitHub Actions ile CI/CD Sürecini Optimize Etmek
GitHub Actions ile workflow'larınızı daha da özelleştirebilirsiniz. Örneğin, belirli testlerin sadece belirli dosyalar değiştiğinde çalışmasını sağlayabilirsiniz. Ayrıca, deploy işlemleri için de bir iş akışı tanımlayabilirsiniz.
Örnek olarak, projenizin her yeni sürümünü otomatik olarak bir sunucuya dağıtmak için şu adımları izleyebilirsiniz:
name: Deploy to Production
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Deploy to server
run: |
scp -r ./build user@server:/path/to/deploy
Bu workflow, her `main` dalına yapılan `push` işleminde otomatik olarak sunucuya dağıtım yapacaktır. Böylece, üretim ortamına manuel müdahale gerekmeden kod dağıtımı yapılmış olur.
GitHub Actions'ın Güçlü Yönleri
GitHub Actions'ın sunduğu bir dizi avantaj vardır:
- Otomatikleştirme: Her şey otomatik hale gelir. Testler, derleme işlemleri ve dağıtımlar hiçbir manuel müdahale olmadan çalışır.
- Entegre Yapı: GitHub üzerinde doğrudan çalışır. Böylece başka bir araca gerek kalmadan tüm işlemleri burada halledebilirsiniz.
- Esneklik: Farklı ortamlar ve programlama dilleri için destek sağlar. İster Python, ister JavaScript kullanın, her şey GitHub Actions ile mümkün.
- Ölçeklenebilirlik: Küçük projelerden büyük kurumsal yazılımlara kadar her türlü projeye uygun çözümler sunar.
Sonuç
GitHub Actions, yazılım geliştirme süreçlerinizi hızlandırır ve otomatikleştirir. Artık her gün tekrar ettiğiniz test, derleme ve dağıtım işlemleri sizin yerinize GitHub tarafından yapılacak. Böylece zamandan tasarruf edebilir ve hata oranlarını en aza indirebilirsiniz.
GitHub Actions ile otomasyon dünyasına adım attığınızda, yazılım geliştirme sürecinizin ne kadar verimli hale geldiğini göreceksiniz. Hadi, denemeye başlayın ve bu harika aracın gücünden faydalanın!