GitHub Actions Nedir?
GitHub Actions, yazılım geliştirme sürecinde tekrarlayan işleri otomatikleştiren bir araçtır. GitHub'ın sunduğu bu özellik, sürekli entegrasyon (CI) ve sürekli dağıtım (CD) gibi işlemleri kolayca yapmanıza olanak tanır. Yani, bir pull request açtığınızda ya da bir commit yaptığınızda otomatik olarak testler çalıştırabilir, uygulamanızı dağıtabilir ya da başka işlemler yapabilirsiniz.
Başlangıç: İlk Action’ınızı Oluşturun
GitHub Actions kullanmaya başlamak aslında düşündüğünüz kadar karmaşık değil. İlk adım, GitHub deposunda bir *workflow* (iş akışı) oluşturmaktır. Workflow'lar, belirli olaylara yanıt olarak çalışan bir dizi adımdan oluşur. İşte basit bir örnek:
Adım 1: Depo içinde `.github/workflows` adında bir klasör oluşturun.
Adım 2: Bu klasörde bir YAML dosyası oluşturun, örneğin `ci.yml`. YAML dosyaları, GitHub Actions için yapılandırma dosyalarıdır.
name: CI Workflow
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
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
Adım 3: Bu dosyayı kaydettikten sonra, her push işlemi yapıldığında bu workflow çalışacaktır. GitHub, kodunuzu otomatik olarak test eder, gerekli bağımlılıkları yükler ve testlerinizi çalıştırır. Bu sayede her şeyin düzgün çalıştığından emin olabilirsiniz.
Action'lar ile Otomasyon
GitHub Actions sadece testlerle sınırlı değil. Farklı action'lar kullanarak dağıtım işlemlerini de otomatikleştirebilirsiniz. Örneğin, her başarılı test sonrası uygulamanızı canlıya alabilir, belirli bir versiyonu yayınlayabilir veya Docker konteyneri oluşturabilirsiniz.
Örnek: Bir Docker konteyneri oluşturup Docker Hub'a yüklemek için aşağıdaki adımları takip edebilirsiniz:
name: Docker Build and Push
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
run: |
docker build -t my-app .
docker push my-app
Gelişmiş Kullanım: Secrets ve Entegrasyonlar
GitHub Actions'ın gücünü tam olarak kullanabilmek için bazen gizli anahtarlara (secrets) ihtiyacınız olabilir. Örneğin, bir API anahtarı ya da veritabanı şifresi gibi gizli bilgileri GitHub Actions'ta kullanmak için, bu bilgileri GitHub Secrets kısmına eklemeniz gerekir.
GitHub Actions, ayrıca Slack, AWS, Azure ve diğer birçok popüler hizmetle entegrasyonlar sunar. Bu entegrasyonlar sayesinde, bir iş akışı tamamlandığında otomatik olarak bildirim gönderebilir ya da bulut platformlarında işlemler gerçekleştirebilirsiniz.
Sonuç
GitHub Actions, yazılım geliştirme süreçlerinizi otomatikleştirmek için harika bir araçtır. Kodunuzu test etmekten, uygulamanızı dağıtmaya kadar her şeyi otomatikleştirebilir ve böylece zaman kazanabilirsiniz. Adım adım rehberimizle, GitHub Actions'a başlamak oldukça basit ve kullanıcı dostudur. Bu yazıyı okuduktan sonra, GitHub Actions'ı kullanmaya başlayarak yazılım geliştirme sürecinizi bir üst seviyeye taşıyabilirsiniz!