Cake Build Nedir?

Adem Catamak
2 min readAug 2, 2020

--

Bu yazı serisinde Cake nedir, Cake ile CI pipeline kurmanın avantajları ve .Net Core uygulamaları için basit bir pipeline’nın nasıl olabileceği üzerinde duracağız.

Origin: https://github.com/cake-build/frosting/blob/develop/cake-medium.png

Cake, C# dili ile build-script yazmamızı sağlayan bir framework’tür ve açık kaynak kodlu olarak geliştirilmektedir.

Cake Build Kullanmanın Avantajları Nelerdir?

.Net üzerinde geliştirme yapan yazılımcıların C# dilini biliyor olması ve Cake scriptinin de C# ile yazılıyor oluşunu önemli bir avantaj olarak sayabiliriz. Bu sayede yeni bir dil öğrenmeden, .Net üzerinde geliştirme yapan yazılımcıların hızlıca implementasyon aşamasına geçebiliyor olması, Cake kullanmanın en cazip yanlarından biridir.

Kullanılan CI sistemine bağlı olmadan CI pipeline’ın tasarlanması bir diğer avantaj olarak sayılabilir. AppVeyor, Travis-CI, Jenkins vb. platformlar üzerinde aynı Cake dosyası çalıştırılabilir. Bu durumda bir CI platformundan bir diğer CI platformuna çok kolay bir şekilde geçiş yapılabilir.

Son olarak ise yazdığımız scriptleri kendi bilgisayarımızda çalıştırabilir ve debug edebilmemiz Cake ile çalışmanın artıları arasında sayılabilir.

Cake Build Nasıl Çalışır?

Cake; görevlerin tanımlanması ve bu görevler arasındaki ilişkilerin belirlenmesi vasıtasıyla bir dizi operasyonun yürütülmesi esasına dayanır.

Cake script’imizi genişletmeden önce birkaç anahtar kelimeye göz atalım.

  • Task: Cake içerisinde yürütülecek görevleri oluşturmak için kullanılır.
  • Does: Görevlerin içerisinde yürütülecek aksiyonların tanıtıldığı bölümü temsil eder.
  • Argument: Cake dosyasını çalıştırılırken dışarıdan parametre kabul etmek için kullandığımız metodun adıdır. Metodun ilk parametresi Cake script’ini tetikleyen kişinin veriyi iletmek için kullandığı ismi temsil eder. Metodun ikinci parametresiyse dışarıdan bir değer verilmezse, varsayılan olarak hangi değerin kullanılacağını temsil eder. Bizim örneğimiz için konuşacak olursak, dışarıdan bir hedef belirtilmediği sürece amacımız, “Final Stage” görevini çalıştırmaktır.
  • RunTarget: Bir görev adını parametre olarak alır ve o görevi tetikler.

Bu bilgilerden yola çıkarak yukarıdaki scripti yorumlarsak, yaptığımız işlemi şu şekilde özetleyebiliriz:

  • Varsayılan olarak, “Final Stage” ismi ile tanımladığımız görevin hedef alınmaktadır. Başka görevler tanımladıktan sonra Script’i tetikleyen kişi tarafından hedef olarak o görevleri de işaret edebiliriz.
  • RunTarget” metoduna yürütülmek istenen görevin adı verilir. Bu sayede tanımladığımız görev tetiklenmiş olacaktır.

Yazının ikinci kısmında “Cake Build ile .Net Core uygulamaları için CI Pipeline Nasıl Oluşturulur?” konusuyla ilgileniyor olacağız.

Diğer yazılarıma göz atmak için bu linke tıklayabilirsiniz.

--

--