Travis CI

Jak wszyscy wiedzą, gdy tworzy się dokument, program czy bibliotekę, po zakończeniu pracy trzeba go wrzucić w odpowiednie miejsce. Jak wiadomo trwa sesja i studenci zrobią wszystko byle się nie uczyć do egzaminów czy kolokwiów. Tak więc czemu by nie zautomatyzować wrzucania najnowszej wersji regulaminu na serwer zaraz po tym, gdy zostanie zaktualizowany ? Pokażę jak można to łatwo zrobić z użyciem Travis-CI Pierwszą rzeczą jaką robimy to stworzenie pliku .travis.yml mniej więcej takiego:

Taki krótki pliczek powoduje doinstalowanie potrzebnych paczek oraz skompilowanie pliku. Tak więc dokładamy ten pliczek do repozytorium. Zaraz przed pushem do głównego repozytorium włączamy na travis-ci.org obsługę naszego repo. By to zrobić logujemy się na travis-ci.org, wybieramy z naszego profilu konta. travis-0 Wybieramy po lewej stronie odpowiedni profil, następnie włączamy obsługę travis dla odpowiedniego repozytorium. travis-1 Potem szybki push i możemy obserwować build naszego cudownego dokumentu. travis-2   Teraz byłoby bardzo miło, gdyby travis sam wrzucał nasz dokument gdzieś (FTP, wiki czy jeszcze coś innego). Możemy to zrobić dokładając w naszym pliku konfiguracyjnym sekcję after_success (więcej można dowiedzieć się z dokumentacji http://docs.travis-ci.com/user/deployment/custom/). Użytkownicy i hasła lubią się zmieniać, więc od razu przesuwamy te dane do zmiennych.

Po tych wszystkich zabiegach nasz plik wygląda mniej więcej tak:

Jednak trzymać hasło do naszego serwera czystym tekstem w otwartoźródłowym projekcie to proszenie się o kłopoty. Travis pozwala na szyfrowanie naszych danych (dokumentacja) . Wystarczy by wpis który ma być ukryty zrobić polem o nazwie „secure” i travis odszyfruje jego zawartość kluczem wygenerowanym dla repozytorium. Tak więc sekcja env konfiguracji będzie wyglądać tak:

Przydatnym może być jeszcze dodanie komentarzy na końcu linii, do której zmiennej się odnoszą.

Więc ostatecznie nasze hasła są dobrze zabezpieczone. Nasz końcowy pliczek wygląda tak:

Stworzenie takiego pliku jest dość szybkie. Teraz już zawsze (o ile będzie dostęp do FTP) plik do pobrania będzie zgodny z tym na repozytorium.