GitHub Actions Nasıl Kullanılır? Adım Adım Kılavuz

GitHub Actions Nasıl Kullanılır? Adım Adım Kılavuz

GitHub Actions ile yazılım geliştirme süreçlerinizi nasıl otomatikleştirebileceğinizi adım adım keşfedin. Bu blog yazısında, temel kurulumdan ileri düzey kullanıma kadar her şeyi bulacaksınız.

BFS

GitHub Actions, yazılım geliştirme süreçlerini otomatize etmek ve daha verimli hale getirmek için kullanabileceğiniz güçlü bir araçtır. Birçok geliştirici, projelerinde iş akışlarını yönetmek ve sürekli entegrasyonu (CI) ile sürekli dağıtımı (CD) kolayca kurmak için GitHub Actions’ı tercih ediyor. Bu yazıda, GitHub Actions’ın temellerini öğrenecek ve adım adım nasıl kullanıldığını keşfedeceksiniz.

GitHub Actions’a Giriş



GitHub Actions, yazılım geliştirme sürecindeki tekrarlayan görevleri otomatikleştirmek için kullanılan bir araçtır. Bu görevler, testleri çalıştırmaktan, kodu üretime almaya kadar birçok işlemi kapsar. GitHub Actions, GitHub üzerinde entegre olduğu için, GitHub reposu üzerinden direkt olarak işlem yapabilir.

GitHub Actions’ın Temel Özellikleri

- CI/CD Desteği: Sürekli entegrasyon (CI) ve sürekli dağıtım (CD) işlemlerini otomatize edebilirsiniz.
- Otomatik İş Akışları: Kod push işlemlerinden, pull request’lere kadar pek çok olayda iş akışlarını tetikleyebilirsiniz.
- Farklı Ortamlar: Herhangi bir işletim sistemi (Linux, macOS, Windows) üzerinde çalışabilir.

GitHub Actions Nasıl Başlatılır?



GitHub Actions’ı projelerinizde kullanmaya başlamak için basit bir yapı kurmanız yeterli. İşte adımlar:

1. GitHub Reposuna Gitmek
GitHub Actions’ı kullanmaya başlamak için ilk adımınız GitHub üzerinde bir repo oluşturmak veya mevcut bir projeye gitmektir.

2. .github/workflows Dizini Oluşturun
Projenizde `.github` adlı bir klasör oluşturun ve bu klasörün içinde `workflows` adlı bir dizin oluşturun. İşte örnek dizin yapısı:


   .
   └── .github
       └── workflows
           └── ci.yml
   


3. İlk Workflow Dosyanızı Yazın
Şimdi, bir iş akışını tanımlayabilirsiniz. Bu iş akışları, YAML formatında yazılır ve genellikle `.yml` veya `.yaml` uzantılı olur. İşte basit bir örnek:


   name: CI Workflow

   on: 
     push:
       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, `main` dalına yapılan her push işleminde, Node.js kurulumu ve test çalıştırılması işlemlerini yapacak şekilde yapılandırılmıştır.

GitHub Actions Workflow Yapısı



GitHub Actions iş akışları, üç ana bileşenden oluşur:

1. Events (Olaylar): Workflow’un tetiklenmesini sağlayan olaylar. Örneğin, bir `push` işlemi, bir `pull request` ya da belirli bir zaman dilimi.

2. Jobs (İşler): İş akışlarında yapılan paralel veya sıralı işlemler. Her iş bir veya daha fazla adım içerir.

3. Steps (Adımlar): Bir iş akışının içerisinde sırasıyla çalışacak her bir komut veya işlem.

GitHub Actions’da CI/CD Kurulumu



GitHub Actions, özellikle CI/CD süreçlerinde oldukça kullanışlıdır. Sürekli entegrasyon ve dağıtım süreçlerini basitleştirmenize yardımcı olur.

CICD Örneği:

Bir sürekli entegrasyon süreci kurmak için sadece birkaç adım yeterlidir. Yukarıda verdiğimiz örneği bir süreklilik ve dağıtım (CD) süreciyle entegre edebilirsiniz.

Örnek olarak, testler başarılı olduktan sonra, prodüksiyon sunucusuna otomatik dağıtım yapabilirsiniz. GitHub Actions üzerinde bu tür işlemleri gerçekleştirmek için gerekli ortamları ve gizli anahtarları ayarlayarak süreci daha da otomatize edebilirsiniz.

GitHub Actions’ı İleri Düzey Kullanım



İleri düzey kullanımda, daha fazla özellikten yararlanabilirsiniz. Örneğin, matrix strategy kullanarak birden fazla platformda paralel testler çalıştırabilir veya çalışma süresini azaltmak için önceden yapılandırılmış Docker imajlarını kullanabilirsiniz.

Matrix Strategy:

Birden fazla ortamda testler çalıştırmak için aşağıdaki gibi bir yapı oluşturabilirsiniz:


jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14, 16]
    steps:
      - name: Check out repository
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test


Bu yapı, iki farklı Node.js sürümünde testlerinizi paralel olarak çalıştırmanızı sağlar.

Sonuç



GitHub Actions, yazılım geliştirme süreçlerinizi otomatikleştirmenin güçlü bir yoludur. CI/CD kurulumundan test otomasyonuna kadar birçok alanda kullanabilirsiniz. Basit iş akışları oluşturabileceğiniz gibi, daha karmaşık yapıları da entegre edebilirsiniz. GitHub Actions ile kodunuzun her zaman sağlam ve güncel olduğundan emin olabilirsiniz.

Unutmayın: Otomasyon sadece zamandan kazandırmakla kalmaz, aynı zamanda hataları en aza indirir ve projelerinizi daha verimli 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...

2025’te Web Sitesi Tasarımı: Yapay Zeka ve Otomasyonun Geleceği

2025 yılına adım atarken, teknolojinin her alanda hızla dönüşüm geçirdiğini görmek kaçınılmaz. Bu değişimlerin en çok etkilediği alanlardan biri ise hiç kuşkusuz web sitesi tasarımı. Web tasarımı sadece görsel estetikten ibaret olmaktan çok daha fazlası...