Malinowy Jenkins cz. 1
Być może niektórzy czytelnicy pamiętają, że dawno temu kupiłem takie urządzenie jak komputer Raspberry Pi 2. Przez długi czas leżał on u mnie wrzucony gdzieś w pudełku. Jednak ostatnio postanowiłem spróbować pewnej rzeczy. Uznałem, że sprawdzę czy sprawdzi się jako bardzo prosty serwer buildów i testów automatycznych. Plan był prosty – postawić na nim system i serwer z agentami. Wybór padł na system Raspbian czyli Debian Linux przystosowany do RPi i serwer Jenkins.
Walka trwała kilka godzin. Głównie z powodu niemożliwości zaktualizowania Jenkinsa. Okazało się bowiem, że w repozytorium Raspbiana jest bardzo stara wersja, a nie lubimy przecież bardzo starych wersji. Dlatego po poszukiwaniach w internecie znalazłem sposób jak dodać do repozytorium coś aktualniejszego. Jednak jak się później okazało nie wystarczyło kazać zainstalować uaktualnienia. Nie wiem czy to wina systemu Linux czy Jenkinsa, ale próby aktualizacji zwracały błąd, że pliki są zablokowane przez starą wersję. Coś na zasadzie „chcę zaktualizować Windowsa z 8 na 10, ale nie mogę bo Windows 8 korzysta z plików, które mają być zaktualizowane”. Po wielu kombinacjach i chwilowym zwątpieniu udało się. Jednak powstał, jak sądziłem kolejny problem – serwer nie wstaje. Niby się uruchamia, w logach jest czysto, ale nie mogę wejść na stronę z konfiguracją. Próby znalezienia przyczyny znowu pochłonęły mój czas, a problem okazał się głupi – wolny komputer i pamięć. Raspberry Pi nie jest demonem prędkości. W dodatku korzysta z karty pamięci jako dysku. Wyszło na to, że Jenkins potrzebował jakichś kilkunastu minut (!) żeby się w pełni włączyć.
Ok, jest strona logowania. Można coś tam mieszać w ustawieniach i próbować zainstalować przydatne pluginy. Okazuje się, że wchodząc na stronę Jenkinsa z poziomu Raspberry Pi każde przeładowanie strony trwało ok. 10 sek. W tym miejscu świetnie widać, że sprzęt ledwo wyrabia bo zamknięcie przeglądarki na Raspberry Pi i wejście na stronę konfiguracji z drugiego komputera przyspieszyło ładowanie kolejnych stron zauważalnie. Myślę, że ugrałem w ten sposób z kilka sekund na każdej. Nawet instalacja pluginów w takim wypadku udała się w skończonym czasie.
Jak widzicie w tytule dodałem dopisek „cz. 1” co sugeruje kontynuację. Ogólnie problem jest taki, że zainstalowałem Jenkinsa, którego jeszcze nie umiem konfigurować :D A ponieważ cała zabawa już do tego momentu pochłonęła bardzo dużo czasu to na razie odpuściłem. Sprawdziłem, że środowisko się uruchamia. Jeśli doszkolę się w tym temacie i znajdę czas to być może uda się pchnąć całość dalej. Docelowo pierwotny plan zakładał, że komputerek będzie pobierał co jakiś czas źródła javascriptowego projektu z GITa, przepuszczał je przez odpowiednie aplikacje typu Gulp, uruchamiał lokalnie i zapuszczał na tym projekcie testy automatyczne zwracając (pewnie co kilka godzin patrząc na szybkość działania Raspbiana) raporty czy strony działają tak jak zakładałem. Ale to jest na razie ewentualna przyszłość. Tym bardziej, że fajnie by było mieć do celów testowych też jakiś przynajmniej częściowo uruchomiony projekt.
Także na razie zostawiam Wam te kilka słów i obrazków jako ciekawostkę, a w przyszłości jest szansa, że pociągnę temat dalej :)
Leave a Comment