Jak będzie w projekcie? - Sekcja CI/CD

Prowadzący: Kornel Jankowski


O narzędziach i praktykach do trzymania porządku w małych i dużych projektach informatycznych.
Kategorie:
informatyka inne

Zapisz się

Opis

Porozmawiamy o i przećwiczymy narzędzia i schematy postępowania które pozwalają utrzymywać przy życiu mniejsze i większe projekty software'owe. Przywołamy życiowe przykłady problemów, które o ile w skali olimpiadki, czy szkolnego, albo i nawet uczelnianego projektu nie urastają do zagrożeń, ale np. w realnym projekcie który ma działać też po terminie zaliczenia i wytrzymać to, że będzie aktualizowany, zaczynają gryźć. Będzie to historyjkowo-przykładowe tło do praktycznych zagadnień:

  1. Kontrola wersji
    Poćwiczymy gita, przede wszystkim po to, żeby wszyscy mogli współpracować, ale postaram się, żeby Ci co z gitem już mieli do czynienia, też mieli się nad czym zastanowić. Przyjrzymy się życiowym zastosowaniom rzeczy takich jak np. LFS czy submoduły. 
    Porozmawiamy też o code review, jak i po co się je robi, i jak je robić żeby faktycznie czemuś służyło.

  2. Konteneryzacja
    Poćwiczymy zamykanie oprogramowania w kontenerach (dockera). Porozmawiamy o tym, dlaczego się to robi, ale w skrócie postaramy się o to, żeby jakiś nasz strworzony kawałek oprogramowania był uruchamialny na każdym kartonie po soku z Linuksem, nawet jeśli wymaga specjalnych bibliotek i dodatkowej usługi działającej obok w systemie.

  3. Ciągła integracja / Ciągłe dostarczanie (CI/CD):
    Mając już w ręce gita i dockera zmontujemy (z użyciem Jenkinsa, chyba że się porwiemy na coś nowszego) automatykę, która pozwoli nam bezstresowo wysłać do repozytorium poprawkę na dzikiego buga w piątek po południu i być pewnym, że nie zepsujemy niczego na działającym produkcie, nie wkurzymy klienta, a dodatkowo, jeśli nasz patch jest dobry, naprawimy błąd. Dodatkowo zmontujemy to tak, żeby nikt nie musiał puszczać ręcznie żadnych testów, ale żeby każda poprawka była sprawdzona i żebyśmy wiedzieli, że naprawiając jeden błąd, nie dodamy nowego.

Wymagania

Miejcie konta na GitHubie i GitLabie, proszę.