Merhaba arkadaşlar, bu yazımda sizlere .NET Core API CircleCI Entegrasyonu konusundan bahsedeceğim.
Circle CI, ücretli seçenekleri ve ücretsiz seçenekleri ile Continuous Integration(CI) ve Continuous Delivery(CD) araçları ile bize bir ortam sunar. Ücretsiz seçeneğini belli kısıtlamalar ile bize sunmaktadır. Hazırlanan bir konfigürasyon dosyası ile build, test, deployment süreçleri otomatik olarak gerçekleştirilebilir.
Continuous Integration(Sürekli Entegrasyon):
Sürekli entegrasyon, kod üzerinde yapılan değişiklik sonrasında sistemin çalışır durumda olduğunu, yapılan değişikliğin sorunlara yol açmadığını tespit etmek için kullanılan yöntemdir.
Continuous Delivery(Sürekli Teslimat):
Sürekli teslimat, başarılı olarak derlenen projeyi (build) bir ortama atma durumunun otomatik olan yoludur. Teslimat ile dağıtım arasında küçük bir fark vardır. Teslimat manuel olarak göndermek anlamına gelirken, dağıtım ise otomatik bir şekilde yapılır.
Circle CI adresi: https://circleci.com
Circle CI uygulaması için ilgili adrese giderek bir giriş yapmamız gerekiyor.
Github ile giriş sağlayabiliriz. Github ile giriş yaparak burada belirlediğimiz projemize yetkilendirme verebiliriz.
Giriş işlemi sağladıktan sonra gelen ekranda sol menüde Projects ekranına giderek işlemi entegrasyonumuzu gerçekleştirmemiz gerekiyor.
Projects ekranına geldikten sonra Github üzerinde bulunan Repo listemiz karşımıza gelecektir. İlgili repo işlemi için ayarlamaları gerçekleştirmemiz gerekiyor.
netcoreapi-sample projemiz için Set Up Project butonuna tıklıyoruz. Sonrasında karşımıza aşağıdaki gibi ekran çıkacak ve burada config.yml dosyası seçimini gerçekleştirmemiz gerekiyor.
Bu işlemi gerçekleştirmek için bir config.yml dosyası oluşturmamız gerekmektedir.
Daha önceki yazı serisinde bir API projesi oluşturmuştuk. Oluşturduğumuz bu projeyi github üzerine aktardık ve değişikliklerimizi gerçekleştirdik. Örnek bir config.yml dosyasını github üzerinden indirebilir ya da aşağıdaki kod bloğu ile dosyayı oluşturabilirsiniz. .NET Core 5.0 ile api projemizi oluşturmuştuk, bunu çalıştırmak için de Docker ile kullanım sağlayacağız ve bununla birlikte Otomatik Deployment işlemini gerçekleştireceğiz.
config.yml
version: 2
jobs:
build:
machine: true
steps:
- checkout
# build image
- run: |
docker info
docker build -t netcoreapi-sample -f Dockerfile .
# deploy the image
- run: |
docker login --username=$HEROKU_USERNAME --password=$HEROKU_API_KEY registry.heroku.com
docker tag netcoreapi-sample registry.heroku.com/$HEROKU_APP_NAME/web
docker push registry.heroku.com/$HEROKU_APP_NAME/web
curl https://cli-assets.heroku.com/install.sh | sh
heroku container:release web -a $HEROKU_APP_NAME
Bu şekilde bir konfigürasyon dosyası oluşturduktan sonra da entegrasyonun ilk adımını sağlamış oluyoruz.
Bir sonraki yazıda da Docker File eklemesini yapıp Heroku üzerine Deployment işlemi gerçekleştiriyor olacağız.
Görüşmek üzere 🙂