GitHub Actions ile Sürekli Entegrasyon ve Sürekli Dağıtım (CI/CD) Sürecinizi Kolaylaştırın

GitHub Actions ile Sürekli Entegrasyon ve Sürekli Dağıtım (CI/CD) Sürecinizi Kolaylaştırın

GitHub Actions ile yazılım geliştirme süreçlerini otomatize edin ve CI/CD süreçlerinizi daha verimli hale getirin. Adım adım GitHub Actions kullanımı hakkında detaylı bilgiler bulabileceğiniz bu yazı, her seviyeden geliştiriciye hitap etmektedir.

BFS

GitHub Actions, yazılım geliştirme süreçlerini otomatize etmenin en güçlü ve esnek yollarından birini sunuyor. Belki de şu anda sürekli entegrasyon (CI) ve sürekli dağıtım (CD) süreçlerinizin manuel adımlarını hızlandırmak istiyorsunuz ve tam da burada GitHub Actions devreye giriyor. Eğer GitHub üzerinde yazılım geliştiren biriyseniz, bir GitHub Actions akışının size nasıl büyük kolaylıklar sağlayabileceğini anlamanız çok zaman almayacak.

GitHub Actions Nedir ve Neden Önemlidir?


GitHub Actions, GitHub'un bir parçası olarak sunduğu, CI/CD süreçlerinizi otomatikleştirmenizi sağlayan bir araçtır. Bu araç sayesinde projelerinizi her aşamada test edebilir, derleyebilir ve dağıtım yapabilirsiniz. Yani, her değişiklikte otomatik testlerinizi çalıştırabilir, projelerinizi derleyebilir ve dağıtım işlemlerini otomatik hale getirebilirsiniz. Bu süreçler, hata riskini azaltır, zaman tasarrufu sağlar ve takım üyelerinin verimliliğini artırır.

GitHub Actions ile İlk Workflow'unuzu Oluşturun


Başlamak oldukça basit! GitHub Actions, her projede "workflow" adı verilen bir işlem dizisini tanımlamanıza olanak tanır. Bir workflow, belirli bir olay tetiklendiğinde çalışacak adımları içerir. Bu adımlar birer komut dosyası (script) olabilir veya GitHub’un sunduğu çeşitli hazır aksiyonlar (actions) kullanılarak yapılabilir.

Öncelikle, GitHub projenizde bir `.github/workflows` dizini oluşturmalısınız. Bu dizinde, workflow dosyanızı JSON veya YAML formatında tanımlayabilirsiniz. Aşağıda, basit bir Node.js uygulaması için hazırladığımız örnek bir workflow’yu inceleyebilirsiniz.


name: Node.js CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'
    - run: npm install
    - run: npm test


Bu workflow, her `main` dalına yapılan push ve pull request işlemlerinde otomatik olarak devreye girecektir. `actions/checkout@v2` aksiyonu, kaynak kodunuzu çekmek için kullanılır. Daha sonra, `actions/setup-node@v2` ile Node.js ortamı kurulup, `npm install` ile bağımlılıklar yüklenir ve son olarak `npm test` komutu ile testler çalıştırılır.

Adımlar: İşleyişi Adım Adım Anlamak


Her bir workflow, çeşitli "jobs" (işler) ve her bir job, sırasıyla adımlardan (steps) oluşur. Her bir adım, bir komut çalıştırma veya başka bir aksiyonu çağırma işlemi olabilir. Peki, bu adımları nasıl çalıştırırsınız? İşte temelde yapılanlar:

1. Kodun Alınması (Checkout)
İlk adımda, GitHub Actions projenizi “checkout” eder. Bu, GitHub repo’nuzdaki en güncel kodu almanızı sağlar.

2. Ortamın Kurulması
İşlem için gerekli ortamı kurmak, en önemli adımlardan biridir. Örneğin, Node.js veya Python gibi bir ortamı kurabilirsiniz.

3. Testlerin Çalıştırılması
Bağımlılıkları yükledikten sonra, uygulamanın doğru çalıştığını görmek için testler çalıştırılır.

4. Hata Durumları ve Bildirimler
Testler başarısız olursa, GitHub Actions otomatik olarak bir hata mesajı gösterir. Bu mesajı takıma e-posta ile gönderebilir veya Slack gibi araçlara bildirim gönderebilirsiniz.

GitHub Actions ile Dağıtım Sürecini Otomatikleştirme


Sadece testleri çalıştırmakla kalmayıp, aynı zamanda uygulamanızı otomatik olarak dağıtmak da mümkündür. Mesela, GitHub Actions’ı kullanarak bir heroku uygulaması, AWS veya Azure gibi bulut servislerine dağıtım yapabilirsiniz. Aşağıda örnek bir AWS dağıtım akışı görebilirsiniz.


name: Deploy to AWS

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up AWS CLI
      run: |
        curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
        unzip awscliv2.zip
        sudo ./aws/install
    - name: Deploy to AWS
      run: aws s3 sync ./build s3://your-bucket-name


Bu workflow, `main` dalına yapılan her push işleminden sonra, kodu Amazon S3'e yükler. Böylece, kodunuzu her zaman güncel ve otomatik bir şekilde dağıtmış olursunuz.

GitHub Actions İle Takım Çalışmasını Güçlendirin


GitHub Actions sadece bireysel projeler için değil, aynı zamanda takımlar için de büyük fayda sağlar. Birden fazla iş parçacığı (job) ve çok sayıda işlem içeren karmaşık projelerde, bu tür otomasyonlar takımların zaman kaybetmeden odaklandıkları alanlara yönelmelerini sağlar. Hata ayıklama, bakım ve geliştirme gibi alanlara yönelmek, daha verimli bir yazılım geliştirme süreci sağlar.

Sonuç: GitHub Actions İle Verimliliğinizi Arttırın


GitHub Actions, projelerinizi kolayca otomatikleştirmenizi sağlayan güçlü bir araçtır. Artık yazılım geliştirme sürecinde testleri otomatikleştirebilir, hataları hızlıca yakalayabilir ve kodunuzu herhangi bir ortamda hızlıca dağıtabilirsiniz. Sürekli entegrasyon ve dağıtım süreçlerinizde GitHub Actions ile büyük kolaylıklar elde edebilir, zaman kazanabilir ve hata oranlarını azaltabilirsiniz.

Unutmayın: GitHub Actions ile CI/CD sürecinizi otomatize etmek sadece işlerinizi hızlandırmakla kalmaz, aynı zamanda yazılım geliştirme sürecini daha sürdürülebilir ve hatasız bir hale getirir.

İlgili Yazılar

Benzer konularda diğer yazılarımız

Modern Yazılım Geliştirme Süreçlerinde Yapay Zeka ve Otomasyonun Rolü: 2025’te Yeni Başlangıçlar

Yazılım geliştirme dünyası hızla evriliyor. 2025 yılına adım attığımızda, bu süreçte yapay zeka ve otomasyonun rolü hiç olmadığı kadar önemli hale geldi. Geçmişte yazılım geliştirme yalnızca kod yazmak ve sistemleri test etmekle sınırlıydı. Ancak bugünün...

Yazılım Geliştiriciler İçin Verimli Çalışma Alanı Oluşturmanın İpuçları: En İyi Araçlar ve Yöntemler

Verimli Bir Çalışma Alanı Neden Önemlidir?Yazılım geliştirici olmanın zorluklarından biri de sürekli odaklanmış ve üretken olabilmektir. Bir geliştirici olarak, işlerinizin çoğunu bilgisayar başında geçirirsiniz ve bu süre zarfında verimli bir çalışma...

Kodunuzu Temiz Tutun: Yazılımda 'Yavaş Kodu' Tespit Etmenin 7 Etkili Yolu

Yazılım geliştirme dünyasında zamanın ne kadar kıymetli olduğunu hepimiz biliyoruz. Yazdığınız kodun hızlı ve verimli olması, projelerinizi başarılı kılmanın anahtarıdır. Ama ne yazık ki, çoğu zaman kodu hızlı yazmak uğruna temizliği ihmal edebiliriz....