Jakiś czas temu szukałem, odpowiedniego dla mnie, serwera CI. Dlaczego jest mi potrzeby oraz jakie wymagania musi spełnić, abym go wybrał? O tym już dzisiaj. Zapraszam do czytania mojego wywodu dlaczego wybrałem AppVeyor. Miłej lektury.

Dlaczego potrzebuję serwera CI?

Hobbystycznie tworzę projekt IsTableBusy. Jego pierwsze wersje diplojowałem ręcznie z użyciem opcji „publish” w VisualStudio. Rozwiązanie niby dobre, ale ręczne, czasochłonne i odpalane manualnie. Napisałem zatem, odpowiednie skrypty budujące i publikujące przy pomocy Cake. Dzięki czemu proces nie był już ani ręczny, ani czasochłonny, ale wciąż musiałem uruchamiać go ręcznie. W związku z tym naturalnym następnym krokiem była automatyzacja całego procesu, w taki sposób, abym nie musiał dotykać go już w przyszłości. Musiałem zdecydować się na serwer CI, których jest cała masa w internecie. Zatem czas na …

Moje wymagania odnoście serwera CI

Stoi na Windowsie. Ponieważ projekt, który robię jest oparty na platformie .NET, a sam CakeBuild używa Powershella to było to moje pierwsze niepodważalne kryterium. Takie naturalne wymaganie, które muszę spełnić, aby mógł odpalić to co już mam gotowe. Owszem pozostają rozwiązanie oparte o mono, czy .NET Core, ale nie chciałem początkowo komplikować sobie drogi.

Łatwe odpalanie skryptów PS

Wiele serwerów posiada gotowe komponenty do budowania i publikowania aplikacji, które mogą być skonfigurowane z GUI. Ja jednak mam do tego zgoła inne podejście, o czym pisałem już wyżej oraz w innych wpisach. Mianowicie w repozytorium posiadam skrypty do budowania, testowania i deploymentu aplikacji. W związku z tym potrzebuję tylko platformę pozwalającej mi na odpalenie tych skryptów w sposób prosty. Bez komplikowania!

Hostowany

Kolejnym dość ważnym kryterium było, aby ten serwer był udostępniony jako usługa. Nie chciałem bawić się w konfigurowanie serwera, czy instalacje agentów i inne takie cuda. Dodatkowo wybierając rozwiązanie hostowane mogę szybciej przejść do rozwiązywania konkretnych problemów, a nie skupiać się na żmudnym konfiguracji architektury.

Darmowy dla OpenSource

Ten warunek nie był konieczny, ale skoro tworzę projekt OpenSource na którym nie zarabiam to również nie chcę ponosić dodatkowych kosztów. W związku z tym również filtrowałem rozwiązane ze względu na darmowość dla projektów otwartoźródłowych.

Jaki serwer CI wybrać dla CakeBuild

Poszukiwania zacząłem wygoglowania informacji o rozwiązaniach CI. Udało mi się znaleźć kilka list typu „Top X Ci solutions”. Zaskoczyła mnie mnogość rozwiązać, bo jest tego cała masa. Po zapoznaniu się z rankingami miałem ogólny obraz rynku. Następnie tylko przefiltrowałem wyniki zgodnie z nałożonymi wcześniej wymaganiami. Mój wybór padł na AppVeyor, który to umożliwia dodatkowo konfigurację narzędzia poprzez plik yml, leżący w repo, co jest kolejną zaletą.

Co dalej?

Dziękuję ślicznie za Twoją obecność. W przyszłości opiszę jak skonfigurować AppVeyor używając pliku appveyor.yml. Czy Ty używasz serwera CI do budowania i diplojowania swoich projektów OpenSource? Jeżeli tak to jakich? A może poleciż mi jakieś rozwiązanie, które mi umknęło? Jeżeli odpowiedź na którekolwiek z tych pytać jest pozytywna lub po po prostu coś był dodał to koniecznie napisz to w komentarzach.


Dodaj komentarz

Twój adres email nie zostanie opublikowany.