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:
before_script: - sudo apt-get install -y texlive texlive-lang-polish texlive-fonts-extra texlive-latex-extra script: - pdflatex -halt-on-error regulamin.tex
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.
Wybieramy po lewej stronie odpowiedni profil, następnie włączamy obsługę travis dla odpowiedniego repozytorium.
Potem szybki push i możemy obserwować build naszego cudownego dokumentu.
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.
env: global: - "FTP_USER=user" - "FTP_PASSWORD=password" after_success: "curl --ftp-create-dirs -T regulamin.pdf -u $FTP_USER:$FTP_PASSWORD ftp://static.hskrk.pl/stowarzyszenie/regulamin.pdf"
Po tych wszystkich zabiegach nasz plik wygląda mniej więcej tak:
env: global: - "FTP_USER=user" - "FTP_PASSWORD=password" before_script: - sudo apt-get install -y texlive texlive-lang-polish texlive-fonts-extra texlive-latex-extra script: - pdflatex -halt-on-error regulamin.tex after_success: "curl --ftp-create-dirs -T regulamin.pdf -u $FTP_USER:$FTP_PASSWORD ftp://static.hskrk.pl/stowarzyszenie/regulamin.pdf"
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:
env: global: - secure: "FKohlBkvPVrrz6E7Vuik4GUhDyeSpVW8Fa0JN9L4yX2Zxa8SvYH/HIgPRCVGfyEuXwEqaVzLiMPVKnzRcUnDXE9WVWQ5LaPpzT5dkDk9qpz2DRS1S45HJyrm53ps8ohc3qE1bXacIh3/VwtEqfTotv6i0foFDOPlhsbDOxLjUls=" - secure: "D2mNJOq3+o0/NHJFVD2W8SjErgJvdvXLkjiL3JkxTIvyISf7zzFhKHhQ68w+mhPpFhCO2rLRB6XkoKBYGTS1J36ZvtKjeHbnDO9qpplUsrMyznkyuEJZiI6ApbW/YT/RieoPl4HE1p7Ure6gLQBJA0BA+RLCQRiITG6gcvWNjEM="
Przydatnym może być jeszcze dodanie komentarzy na końcu linii, do której zmiennej się odnoszą.
env: global: - secure: "FKohlBkvPVrrz6E7Vuik4GUhDyeSpVW8Fa0JN9L4yX2Zxa8SvYH/HIgPRCVGfyEuXwEqaVzLiMPVKnzRcUnDXE9WVWQ5LaPpzT5dkDk9qpz2DRS1S45HJyrm53ps8ohc3qE1bXacIh3/VwtEqfTotv6i0foFDOPlhsbDOxLjUls=" # FTP_USER - secure: "D2mNJOq3+o0/NHJFVD2W8SjErgJvdvXLkjiL3JkxTIvyISf7zzFhKHhQ68w+mhPpFhCO2rLRB6XkoKBYGTS1J36ZvtKjeHbnDO9qpplUsrMyznkyuEJZiI6ApbW/YT/RieoPl4HE1p7Ure6gLQBJA0BA+RLCQRiITG6gcvWNjEM=" # FTP_PASSWORD
Więc ostatecznie nasze hasła są dobrze zabezpieczone. Nasz końcowy pliczek wygląda tak:
env: global: - secure: "FKohlBkvPVrrz6E7Vuik4GUhDyeSpVW8Fa0JN9L4yX2Zxa8SvYH/HIgPRCVGfyEuXwEqaVzLiMPVKnzRcUnDXE9WVWQ5LaPpzT5dkDk9qpz2DRS1S45HJyrm53ps8ohc3qE1bXacIh3/VwtEqfTotv6i0foFDOPlhsbDOxLjUls=" # FTP_USER - secure: "D2mNJOq3+o0/NHJFVD2W8SjErgJvdvXLkjiL3JkxTIvyISf7zzFhKHhQ68w+mhPpFhCO2rLRB6XkoKBYGTS1J36ZvtKjeHbnDO9qpplUsrMyznkyuEJZiI6ApbW/YT/RieoPl4HE1p7Ure6gLQBJA0BA+RLCQRiITG6gcvWNjEM=" # FTP_PASSWORD before_script: - sudo apt-get install -y texlive texlive-lang-polish texlive-fonts-extra texlive-latex-extra script: - pdflatex -halt-on-error regulamin.tex after_success: "curl --ftp-create-dirs -T regulamin.pdf -u $FTP_USER:$FTP_PASSWORD ftp://static.hskrk.pl/stowarzyszenie/regulamin.pdf"
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.
- Projects
- Subscribers
- None