SpringBoot Web Servisi: GitHub Actions ile Otomasyon
Merhaba! Bu yazıda, SpringBoot web servislerinizin geliştirme sürecinde GitHub Actions kullanarak nasıl bir CI/CD (Sürekli Entegrasyon/Sürekli Teslimat) otomasyon boru hattı kurabileceğinizi adım adım inceleyeceğiz. Önceki yazılarımızda SpringBoot uygulaması geliştirdik. Şimdi ise bu uygulamayı otomatik olarak test edip deploy edeceğiz. Bu sayede geliştirme sürecini hızlandıracak ve hataları daha erken aşamalarda yakalayabileceğiz.
GitHub Actions Nedir?
GitHub Actions, GitHub’ın sunucu tarafında çalıştırılan bir otomasyon aracıdır. Kodunuza bağlı olarak, geliştirme sürecinizin her adımını otomatikleştirebilirsiniz. Örneğin; kod değişiklikleri tespit edildiğinde otomatik test çalıştırma, kod kalitesini kontrol etme, hatta otomatik olarak sunucunuza deploy etme gibi işlemleri gerçekleştirebilirsiniz. Bu, zaman kazandıran ve hata olasılığını azaltan oldukça kullanışlı bir araçtır.
SpringBoot Projemize GitHub Actions Entegrasyonu
İlk olarak, GitHub deponuzda bir .github/workflows klasörü oluşturun. Bu klasör, GitHub Actions iş akışlarını tanımlayan YAML dosyalarını içerecektir. Buraya, “main.yml” adında bir dosya oluşturalım. Bu dosya, projemizi nasıl derleyeceğimizi, test edeceğimizi ve deploy edeceğimizi belirleyecektir. Aşağıda örnek bir main.yml dosyası bulunmaktadır. Bu dosya, kod değişiklikleri tespit edildiğinde otomatik olarak testleri çalıştıracak ve başarılı olursa, projenizi deploy edecektir.
name: Java CI
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Build with Maven
run: mvn clean package
- name: Run Tests
run: mvn test
- name: Deploy to Server (Örnek)
run: |
# Burada kendi deploy komutlarınızı yazın.
# Örnek olarak SSH kullanımı gösterilmiştir.
ssh user@server 'cd /var/www/app && rm -rf * && tar -xzvf target/myapp.jar'
Bu kod parçasında, öncelikle JDK 17 kurulumu yapılır. Sonrasında Maven ile proje derlenir ve testler çalıştırılır. Son adımda ise örnek olarak SSH ile sunucuya deploy işlemi gerçekleştirilir. Bu kısıma kendi sunucunuz ve deploy yönteminize uygun komutları yazmanız gerekmektedir. Örneğin, Docker kullanıyorsanız Docker image oluşturma ve sunucuya gönderme komutlarını kullanabilirsiniz.
İleri Düzey Konfigürasyonlar
GitHub Actions’ın sunduğu birçok özellik daha ileri düzey konfigürasyonlara olanak tanır. Örneğin, farklı ortamlar için ayrı iş akışları oluşturabilir, kod analizi araçlarını entegre edebilir ve daha detaylı raporlama yapabilirsiniz. Daha detaylı bilgi için GitHub Actions resmi dökümanlarına göz atabilirsiniz. Ayrıca, projenizin karmaşıklığını ve büyüklüğünü dikkate alarak iş akışınızı optimize etmeniz önemlidir.
Sonuç
GitHub Actions, SpringBoot projelerinizin geliştirme sürecinde büyük bir kolaylık sağlayan güçlü bir araçtır. Otomasyon sayesinde zaman kazandırabilir, hata olasılığını azaltabilir ve sürekli entegrasyon ve sürekli teslimat prensiplerini uygulayabilirsiniz. Bu rehberde yer alan adımları takip ederek kendi otomasyon boru hattınızı oluşturabilir ve geliştirme sürecini önemli ölçüde iyileştirebilirsiniz. Daha fazla bilgi ve SpringBoot ile ilgili diğer yazılarım için fatihsoysal.com adresini ziyaret edebilirsiniz.
#Etiketler: SpringBoot, GitHub Actions, CI/CD, Otomasyon, Web Servisi, Java, Geliştirme, Deploy, Entegrasyon, Maven, Test, SSH, Docker
