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.

Al_Yapay_Zeka

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

Git 'Detached HEAD' Hatası ve Çözümü: Her Git Kullanıcısının Bilmesi Gerekenler

Git kullanmaya yeni başlamış bir yazılımcı olarak, bir gün, bir commit’e ya da başka bir branch’e geçmek için `git checkout` komutunu kullandığında bir hata aldığını fark eder. Hata mesajı, "You are in 'detached HEAD' state" diye başlar. Başka bir deyişle,...

Prometheus Kullanımı: Sunucu Performansını İzleme ve Optimizasyon

Prometheus Nedir ve Neden Kullanılır?Bir sabah uyanıp bilgisayarınızın normalden çok daha yavaş çalıştığını fark ettiğinizde, ne yaparsınız? Tabii ki, hızla sistemi kontrol eder, disk kullanımına göz atar, bellek tüketimini kontrol eder, işlemciyi izlersiniz....

Yapay Zeka ile Veritabanı Yönetimi: PostgreSQL'i Otomatikleştirmek için AI Tabanlı Yöntemler

Yapay Zeka ve Veritabanı Yönetimi: Veritabanlarınızı AkıllandırınBugün, veritabanı yönetimi, pek çok şirketin günlük işleyişinde kritik bir rol oynuyor. Ancak, bu veritabanlarını manuel olarak yönetmek, zaman alıcı ve hata yapma olasılığı taşıyan bir...

Yapay Zeka ile İleri Seviye Kod İnceleme: Verimliliği Artırmak ve Hataları Tespit Etmek İçin Yeni Yaklaşımlar

Geliştiriciler, her gün yüzlerce satır kod yazıyor ve bu kodların her biri, yazılımın daha hızlı, daha güvenli ve daha verimli çalışabilmesi için özenle gözden geçirilmeli. Ancak kod gözden geçirme (code review) süreçleri zaman alıcı, bazen karmaşık ve...

Helm ile Kubernetes Uygulaması Dağıtmak: Adım Adım Rehber

Kubernetes'te Uygulama Dağıtımının ZorluklarıKubernetes, modern yazılım geliştirme dünyasında en güçlü araçlardan biri olarak karşımıza çıkıyor. Birçok geliştirici ve operasyon ekibi, uygulamaları bulut ortamlarında sorunsuz bir şekilde çalıştırabilmek...

Yapay Zeka ile Programlama: Yeni Başlayanlar İçin Adım Adım Rehber

Yapay zeka (AI), günümüzün en heyecan verici ve hızla gelişen alanlarından biri. Her geçen gün daha fazla hayatımıza dokunan bu teknoloji, yazılım geliştirme dünyasında da devrim yaratıyor. Ama belki de siz, bu alanda yeni başlayanlardansınız ve nasıl...