Şu tarihte

Arduino ile Appveyor Kullanımı

Arduino ile maceralarımız devam ediyor, continuous integration ile bir mücadele daha dedim ve Appveyor'a bodoslama daldım.

Continuous Integration ve Continuous ilgimi çeken alanlardan, daha önce Arduino ile Travis CI entegrasyonuyla ilgili bir makale yazmıştım, kendisini buradan bulabilirsiniz.

Travis CI ile yazdığımız projeyi linux ortamlarında rahatça koşturabilirken, konu Microsoft platformu olunca Travis CI cevap veremiyordu, tam bu noktada Appveyor devreye giriyor. Appveyor'un avantajı Windows üzerinde projeyi koşturabilmeniz ve deploy edebilmenizin yanında bu işlemleri Linux ortamında da yapmanıza olanak tanıyor, bu bakımdan Travis karşısında 1-0 önde diyebiliriz. (Bu yazı yazılırken Travis CI blogundan yapılan açıklamaya göre Windows platformuna yönelik desteğin geldiği lakin başlangıç aşamasında olduğunu görebilirsiniz, "Allah, Allah" demeden söyleyeyim. Travis referanslarında şu an yalnızca Windows Server version 1803'ün desteklendiği yazıyor.) Appveyor'da tıpkı Travis gibi public repolara ücretsiz kullanım sunuyor.

Kullanımı da oldukça basit, üyeliğinizi Github'a auth vererek yaparsanız (eğer kullanıyorsanız) büyük kolaylık sağlayacaktır.

appveyor

  • GitLab'ten Subversion'a bir çok altyapı ile entegre çalışabiliyor.
  • Proje eklemesi / çıkarması çok basit, YAML dosyasını konfigüre etmek Travis CI ile çok benzer.
  • .NET platformu ile çalışanlara yönelik bolca özellik mevcut.
  • Yine .NET platformu ile çalışanlara yönelik worker image'i seçilebiliyor, VS'den Ubuntu'ya bir çok seçenek var.
  • MySQL, MSSQL, PostgreSQL, MongoDB gibi servisleri ekleyebiliyorsunuz.
  • GUI kısmı oldukça gelişmiş olduğu için bir çok işlemi arayüzden halledebiliyorsunuz.

Benim ilgimi çeken kısımlardan biri de Deploy kısmı oldu, aşağıda görebileceğiniz gibi bir çok servise otomatik deploy edebiliyor:

appveyor-deploy

Geçelim Arduino kısmına, Travis'te olduğu gibi burada da Arduino için en makul çözüm PlatformIO aracılığı ile build etmek oluyor. Konfigürasyon dosyamız yine YAML ile yazılacak, ufak değişiklikler haricinde Travis'ten çok farkı yok.

Açıklamalı konfigürasyon dosyasını Github'ta repo olarak paylaştım. ArduinoAppveyor reposunu projenize dahil ettikten sonra github'a push ederseniz otomatik olarak build işlemleri başlayacaktır.

Örnek bir build işlemi:

appveyor build