Kiedyś wspomniałem o tym, że przeszedłem z platformy Wordpress na Jekyll. I do dziś uważam, że to był dobry wybór! Głównie z tego powodu, że teraz wszystko mogę robić z pozycji edytora tekstu. Przy pomocy Markdown piszę tekst, potem robię commita i tyle! Nie musze odpalać żadnej przeglądarki jak to miało miejsce wcześniej. Mogę skupić się tylko i wyłącznie na dostarczaniu treści.
Jedyne co mnie bolało w Jekyll, aż do niedawna (o czym za chwilę), to brak automatycznego publikowania treści. W Wordpress miałem to Out of The Box. Pewnie jeśli korzystałbym z GitHub Pages to też nie miałbym z tym żadnego problemu. Jednak wrzucanie zbudowanego projektu na własny serwer nie jest już takim hop siup. Dlatego mozolnie wrzucałem post za postem, “ręcznie”, przez SSH. Tak, tak, wiem… programista, który z lenistwa nie zrobił sobie skryptu. Na usprawiedliwienie powiem, że miałem po prostu inne priorytety. A to nie bolało mnie aż tak bardzo. Aż do niedawna…
Pierwszym podejściem do automatyzacji była próba stworzenia skryptu bashowego. Jednak to się kompletnie nie sprawdziło. Zbyt dużo pracy, a efekt nie był zadowalający. Podczas uruchomienia skrypt często się wysypywał i działał raczej półautomatycznie. Wtedy uznałem, że nie tędy droga. Całkiem możliwe, że to moje umiejętności mogły być niewystarczające.
Drugie, i jak się okazało ostateczne, podejście było tuż pod moim nosem. Wystarczyło wejść na stronę przygotowaną przez twórców Jekyll. Wydaje mi się, że kiedyś tutaj byłem, ale myślałem, że każde przedstawione w tym miejscu rozwiązanie jest płatne, co na moje potrzeby jest po prostu overkillem. I w taki o to sposób, po ponownym zajrzeniu na tą stronę, trafiłem na Buddy. Jest to platforma do CI/CD, która posiada darmowy plan oraz jest naprawdę prosta w obsłudze.
Stworzyłem więc konto i wziąłem się od razu do zaprojektowania pipeline. Po spisaniu kroków jakie wykonywałem manualnie wyszedł mi taki zestaw akcji jak na obrazku powyżej. Ustaliłem, że tiggerem dla nich będzie każdy pushu na dedykowany release branch.
Pokrótce opowiem Ci co się dzieje w tym pipeline. Na start przygotowywany jest serwer, potem buduje się projekt z moim blogiem napisanym w Jekyll na Dockerze. Następnie całość wrzucana jest na serwer, gdzie dokonywane są niewielkie operacje przenoszące pliki w odpowiednie miejsce. Jeśli wszystko zakończy się sukcesem dostaję komunikat na dedykowany chat na Slacku. W przypadku porażki też ma to miejsce.
Dedykowany kanał na Slacku pod kątem Buddy
To cała moja historia. Na podsumowanie chciałbym Ci powiedzieć dwie rzeczy. Czytaj dokładnie to co znajduje się na stronie dostawcy narzędzia, którego używasz. Naprawdę w większości przypadków może to Ci zaoszczędzić sporo czasu. A druga, zajrzyj sobie na stronę Buddy jeśli masz jakiś projekt, który chciałbyś sobie gdzieś wrzucić na serwer. Wydaje mi się, że przypadnie Ci do gustu jego prosty interfejs. Oraz ma uczuciwą cenę, bo jest za darmo (jeśli chodzi o niekomercyjne projekty).