GitHub Actions ile Otomatik Sürüm Yayınlama ve Semantik Sürümleme
Yazılım geliştirme sürecinde sürüm yönetimi, karmaşık ve zaman alıcı bir görev olabilir. Ancak, GitHub Actions ve Semantik Sürümleme’yi birleştirerek bu süreci önemli ölçüde otomatikleştirebilir ve daha verimli hale getirebilirsiniz. Bu makalede, bu iki güçlü aracı kullanarak nasıl otomatik sürüm yayınlama sistemleri kurabileceğinizi adım adım açıklayacağım.
Semantik Sürümleme Nedir?
Öncelikle, Semantik Sürümleme (Semantic Versioning – SemVer) hakkında kısa bir bilgi vermekte fayda var. SemVer, yazılım sürümlerini MAJOR.MINOR.PATCH formatında düzenlemeyi ve bu numaralandırmanın anlamlı bir şekilde değişiklikleri yansıtmasını sağlayan bir sistemdir. MAJOR numarası büyük değişiklikleri, MINOR numarası yeni özellikler eklemeyi ve PATCH numarası ise hata düzeltmelerini gösterir. Örneğin, 1.0.0 sürümünden sonra 1.1.0 sürümü yeni bir özellik eklendiğini, 1.0.1 sürümü ise bir hatanın düzeltildiğini gösterir. Bu sistem, yazılımın farklı versiyonlarını takip etmeyi ve uyumluluğu yönetmeyi kolaylaştırır.
GitHub Actions ile Otomasyon
GitHub Actions, kod deponuzda çeşitli olaylara (örneğin, bir pull request’in birleştirilmesi veya bir yeni tag oluşturulması) otomatik olarak yanıt veren iş akışları oluşturmanıza olanak tanır. Bu iş akışlarını kullanarak, yeni bir sürüm yayınlandığında otomatik olarak sürüm numarasını artırıp, release notları oluşturabilir ve yeni sürümü paketleyip yayınlayabilirsiniz.
Adım Adım Uygulama
İşte GitHub Actions kullanarak otomatik sürüm yayınlama için bir örnek iş akışı:
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- run: npm install
- run: npm run build
- name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
name: Release ${{ github.ref }}
body: |
## Release Notes
Bu sürümde yapılan değişiklikler:
* Değişiklik 1
* Değişiklik 2
* Değişiklik 3
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: build-artifact
path: dist/
Bu örnekte, v* ile başlayan tüm tag’lerin push edilmesi üzerine bir release oluşturuluyor. actions/create-release action’ı kullanılarak release oluşturulur ve actions/upload-artifact action’ı kullanılarak oluşturulan paketler yüklenir. Bu iş akışını kendi projenizin ihtiyaçlarına göre uyarlamanız gerekebilir. Örneğin, daha gelişmiş release notları oluşturmak veya farklı paketleme araçları kullanmak için ek adımlar ekleyebilirsiniz.
Faydalı Kaynaklar
Daha fazla bilgi için şu kaynaklara göz atabilirsiniz:
- Semantik Sürümleme (SemVer)
- GitHub Actions Dokümantasyonu
- Orijinal İngilizce Makale
- Kendi web sitem: fatihsoysal.com
Sonuç olarak, GitHub Actions ve Semantik Sürümleme’yi birlikte kullanarak, yazılım geliştirme sürecinizde önemli bir otomasyon seviyesi elde edebilirsiniz. Bu da, zamandan tasarruf etmenizi, hataları azaltmanızı ve daha verimli bir şekilde çalışmanızı sağlar. Umarım bu makale, bu konuda size yol gösterici olmuştur.
#Etiketler: GitHub Actions, Semantik Sürümleme, Otomatik Sürüm Yayınlama, Yazılım Geliştirme, CI/CD, Sürüm Yönetimi, Otomasyon, DevOps
