[ARAÇ] SDL3 CI/CD

Evet sevgili yazılımperver dostlarım birim testlere yönelik hususları da tamamladıktan sonra, bu yazımda alt yapısal konulardan bir diğeri olan CI/CD (Continuous Integration and Continuous Delivery/Deployment) konusuna değineceğiz.
Aşağıda verdiğim yazımda, Github actions’a yönelik olarak konuyu detaylıca aktarmıştım, onun için burada bunları bir daha açıklamayacağım.

uEngine4 – GitHub Actions

Bununla birlikte, ilgili alt yapıyı geliştirdiğimiz uygulamaya nasıl uyarlayabiliriz ve nasıl çıktılar elde edebiliriz onlara bakıyor olacağız.

Uygulamamız için hazırlamış olduğumuz workflow’un son haline aşağıdaki adresten erişebilirsiniz:

https://github.com/yazilimperver/cpp-playground/blob/main/.github/workflows/cpp-playground.yml

Öncelikli olarak, hem linux hem de windows’u desteklemek için matrix kullanımı ile iki temel konfigürasyon oluşturacağız. Bu yazımda sadece Linux’e yönelik adımları ekliyor olacağız (siz bunu okurken windows için de gerekli adımları eklemeyi umuyorum). Gerekli ortamın hazırlanmasına yönelik adımları daha önce uEngine4 için kullandığım adımları kullanarak yazıyor olacağım. Bunları sadece SDL3 için güncelliyor olacağız.

Yukarıdaki bağlantıda SDL3 kurulumu ve ortam hazırlığı için gerekli adımları görebilirsiniz. Bizim şimdilik yazılım oluşturma ile ilgili adımlarla başlayalım:

Yazılımın oluşturma adımları sonrasında aşağıdaki gibi birim testlerin koşturulmasına yönelik adımları ekliyor olacağız:

Aşağıdaki adım ile ise test sonuçlarını yayınlıyor olacağız. Burada özellikle, test sonuçlarının oluşturulduğu dizine dikkat etmenizde fayda var.

Sonraki adımda ise gcovr kullanarak, kapsama analizi çıktılarını oluşturup, sonrasında yayınlamaya yönelik adımlara bakıyor olacağız. Repo içerisinde, lcov vs için de gerekli betikler mevcut, aynı zamanda bir önceki yazımda da bunlara değindim. İsterseniz, onu da kullanabilirsiniz.

Yukarıdaki adımlara ilaveten bir de yazılımın kendisini de “artifact” olarak sunabilirsiniz. Onun için de aşağıdaki adımı eklemeniz kafi:

Evet sevgili yazılımperver dostlarım bu yazım ile birlikte aslında modern bir C++ yazılımı için ihtiyaç duyacağınız (aslında diğer programlama dilleri ile geliştirilen yazılımlar için de benzer) ve bence olması gereken kabiliyetlere , uygulamalı örnekler üzerinden geçmiş olduk. Bundan sonra, github’a yönelik birkaç hususa değinip, artık SDL3 kullanarak, farklı konulara yönelik çalışmalara devam ediyor olacağız.

Bir sonraki yazımda görüşmek dileğiyle kendinize çok iyi bakın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.