GitHub Actions Nedir?
O kadar esnek ki, yalnızca yazılım geliştirme için değil, aynı zamanda proje yönetimi, dökümantasyon üretimi, depolama süreçleri ve çok daha fazlası için kullanılabilir. GitHub Actions, adeta bir yapbozun parçaları gibi birbirine bağlanabilen iş akışları (workflow) ile karmaşık otomasyon görevlerini kolaylaştırır.
GitHub Actions ile Sürekli Entegrasyon Süreci Nasıl Çalışır?
# Adım 1: GitHub Actions Workflow Dosyasını Oluşturmak
Örneğin, aşağıdaki gibi bir dosya oluşturabilirsiniz:
name: CI Workflow
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout 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 dosya, kodunuzu her push ve pull request işleminde tetikleyecek ve ardından Node.js kurarak bağımlılıkları yükleyecek, testleri çalıştıracaktır. `ubuntu-latest` olarak belirttiğimiz işletim sistemi her zaman en güncel Ubuntu sürümünü kullanacaktır.
# Adım 2: İş Akışını Çalıştırmak
GitHub Actions arayüzü üzerinden bu işlemleri takip edebilir ve her adımda neyin yanlış gittiğini rahatça inceleyebilirsiniz.
GitHub Actions ile Testler Nasıl Çalıştırılır?
name: Python CI
on:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: |
pytest
Bu örnekle, her push işleminde Python projelerinizdeki testleri çalıştırabilir ve sonuçları GitHub üzerindeki Actions sayfasında görüntüleyebilirsiniz. Eğer testlerde bir hata olursa, bu hatayı hızlıca düzelterek projenizin sağlıklı bir şekilde devam etmesini sağlayabilirsiniz.
GitHub Actions ile Sürekli Dağıtım (CD)
name: Deploy to Heroku
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Heroku CLI
uses: akshnz/heroku-cli-action@v1
- name: Log in to Heroku
run: heroku auth:token
- name: Push to Heroku
run: git push https://git.heroku.com/your-app.git main
Bu işlemle her push işleminde uygulamanız otomatik olarak Heroku'ya dağıtılacaktır. Bu şekilde uygulamanız sürekli olarak güncel tutulur ve geliştirici müdahalesine gerek kalmaz.
GitHub Actions’ın Avantajları
- Esneklik sağlar: Çeşitli yazılım dillerini ve platformlarını destekler.
- İzlenebilirlik sunar: Her adımın kaydını tutar ve hata durumunda size geri bildirimde bulunur.
- Bulut tabanlıdır: GitHub üzerinde çalıştığı için herhangi bir ek sunucuya ihtiyaç duymazsınız.