GitHub Actions’a Hoş Geldiniz
- Otomatik testler: Kodunuzu her değiştirdiğinizde testler çalıştırabilirsiniz.
- Sürekli dağıtım: Kodunuzun her yeni versiyonunu anında sunucuya dağıtabilirsiniz.
- Build işlemleri: Uygulamanızın derleme işlemlerini otomatikleştirebilirsiniz.
Adım 1: GitHub Actions ile İlk Workflow'u Oluşturma
Aşağıdaki örneği inceleyelim:
name: Node.js CI
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
Burada ne yapıyoruz?
- on: Hangi olayda bu workflow’un çalışacağını belirtiyoruz. Mesela, `push` veya `pull_request` olayları.
- jobs: Yapmak istediğimiz işlemleri iş akışına ekliyoruz. Her job, belirli bir işlem gerçekleştirecek. Örneğin, kodu kontrol et, Node.js'i kur, bağımlılıkları yükle, testleri çalıştır.
Adım 2: GitHub Actions Workflow’unu Çalıştırmak
Adım 3: Sonuçları İzlemek
Adım 4: Daha Karmaşık İhtiyaçlar İçin Gelişmiş Konfigürasyonlar
Örneğin, hem Node.js hem de Python testlerini çalıştıran bir workflow yazalım:
name: Test Node.js and Python
on:
push:
branches:
- main
jobs:
node-test:
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
python-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest
Bu örnekte, hem Node.js hem de Python için ayrı job’lar tanımlıyoruz. GitHub Actions bu job’ları paralel olarak çalıştıracak ve her iki dildeki testlerinizi aynı anda çalıştıracaktır.
Adım 5: Workflow’ları Özelleştirme
Aşağıda örnek bir koşullu işlem gösterilmektedir:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run tests only on main branch
if: github.ref == 'refs/heads/main'
run: npm test
Bu örnekte, testlerin sadece `main` dalında çalışmasını sağlıyoruz.
GitHub Actions ile Zaman Kazanın ve Hatalardan Kaçının
Unutmayın, GitHub Actions sayesinde her zaman doğru kodu doğru zamanda deploy edebilirsiniz.