Organizacja zaplecza programistycznego i testowego » History » Version 4
Version 3 (Tomasz Blazejczyk, 2018-12-10 17:10) → Version 4/11 (Tomasz Blazejczyk, 2018-12-10 17:15)
h1. Organizacja zaplecza programistycznego i testowego
h2. Używane narzędzia programistyczne
Apache Maven
Eclipse z wtyczkami obsługi SVN
Subversion (SVN)
h2. Repozytorium kodu
Dla potrzeb projektu została stworzona dedykowana gałąź (branch) oprogramowania Yadda w repozytorium SVN.
Pobranie kodów źródłowych na dysk lokalny:
$ mkdir dir
$ svn co svn+ssh://user@bwnsvn.icm.edu.pl/srv/svn/BWN2/projects/dir/branches/4.4.x-AGRO_POPC
$ cd dir
Budowanie lokalnych artefaktów projektu - wymagany zainstalowany Apache Maven
$ mvn clean install
Budowanie zależności dla środowiska Eclipse
$mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
opcje @downloadSources=true@ i @downloadJavadocs=true@ powodują skopiowanie dodatkowych bibliotek razem a ich źródłami i dokumentacją jeśli jest dostępna
Przygotowanie i konfiguracja projektu w IDE Eclipse
Każdy z podkatalogów jest osobnym projektem dlatego należy stworzyć nowy "workspace" i po kolei dodawać podprojekty.
Przykładowo - w Eclipose wybieramy @File -> New -> Java project@, następnie w oknie nowego projekty odznaczamy "Use default location" i przyciskiem "Browse" otwieramy katalog z podprojektem @~/dir/yadda-common@. W okienku "Project name" powinna się wyświetlić domyślna nazwa projektu taka jak nazwa katalogu. Po zatwierdzeniu "Finish" w oknie z drzewkiem pakietów powinien pojawić się nasz nowy projekt, jednocześnie powinien automatycznie się przebudować. Ponieważ brak jest projektów zależnych to pojawią się błędy budowania. Czynność dodawania kolejnych projektów należy powtarzać do momentu gdy nie będzie żadnych błędów.
h2. Continous integration
Pod adresem @http://ci.ceon.pl@ znajduje się platforma kontroli poprawności tworzonego oprogramowania. Workflow działania jest następujący:
* # Programista zapisuje zmiany w centralnym repozytoium SVN poleceniem
$svn commit zmodyfikowany_plik -m "opis zmiany"
lub wskazując na jeden lub wiele plików w projekcie eclipse i za pomocą menu podręcznego @Team -> Commit@
* # Modyfikacja powoduje uruchomienie zadania przebudowy źródeł
http://ci.ceon.pl/job/yadda_build_4.4.x-AGRO-POPC/
Jeśli wystąpiły błędy budowania lub zmiana spowodowała błędy w testach automatycznych, programista otrzymuje powiadomienie maillowe. Jeśli budowanie przebiegło bez błędów, tworzone są tzw. snapshoty artefaktów i zapisywane w lokalnym artifactory @https://maven.ceon.pl/artifactory/yadda-snapshots/@
* # Raz na dobę zostaje aktualizowane środowisko testowe na serwerze lodowy.vls.icm.edu.pl. W tym celu automat CI pobiera najnowsze snapshoty aplikacji z artifactory i instaluje na testowym tomcacie @http://ci.ceon.pl/view/Yadda/job/yadda_deploy%20repo%20agro-popc-test%20at%20lodowy.vls/@ @http://ci.ceon.pl/view/Yadda/job/yadda_deploy%20ui%20agro-popc-test%20at%20lodowy.vls/@
* # Dodatkowo zostanie zrealizowany proces automatyczny uruchamiający testy tzw. integracyjne czyli badające odpowiedzi apliakcji Yadda uruchomionej w uproszczonym kontenerze aplikacji, bez wszystkich podsystemów zewnętrznych. Testy automatyczne w szczególności będą badały poprawność działnia inserfejsów APi. Testy integracyjne również będą uruhamiane w określonym interwale czasowym z uwagi na to że mogą powodować obciążenie serwera CI.
h2. Zasady pracy z kodem źródłowym
* Należy kierować się zasadami Coding Conventions https://wiki.yadda.icm.edu.pl/yadda/Public:Coding_conventions
* Wskazówki do uruchomienia lokalnie własnej platformy Yadda https://wiki.yadda.icm.edu.pl/yadda/Remoting_quick_start
* Gdzie tylko możliwe - należy tworzyć kod samotestujący się https://wiki.yadda.icm.edu.pl/yadda/Public:Automatic_tests
h2. Używane narzędzia programistyczne
Apache Maven
Eclipse z wtyczkami obsługi SVN
Subversion (SVN)
h2. Repozytorium kodu
Dla potrzeb projektu została stworzona dedykowana gałąź (branch) oprogramowania Yadda w repozytorium SVN.
Pobranie kodów źródłowych na dysk lokalny:
$ mkdir dir
$ svn co svn+ssh://user@bwnsvn.icm.edu.pl/srv/svn/BWN2/projects/dir/branches/4.4.x-AGRO_POPC
$ cd dir
Budowanie lokalnych artefaktów projektu - wymagany zainstalowany Apache Maven
$ mvn clean install
Budowanie zależności dla środowiska Eclipse
$mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
opcje @downloadSources=true@ i @downloadJavadocs=true@ powodują skopiowanie dodatkowych bibliotek razem a ich źródłami i dokumentacją jeśli jest dostępna
Przygotowanie i konfiguracja projektu w IDE Eclipse
Każdy z podkatalogów jest osobnym projektem dlatego należy stworzyć nowy "workspace" i po kolei dodawać podprojekty.
Przykładowo - w Eclipose wybieramy @File -> New -> Java project@, następnie w oknie nowego projekty odznaczamy "Use default location" i przyciskiem "Browse" otwieramy katalog z podprojektem @~/dir/yadda-common@. W okienku "Project name" powinna się wyświetlić domyślna nazwa projektu taka jak nazwa katalogu. Po zatwierdzeniu "Finish" w oknie z drzewkiem pakietów powinien pojawić się nasz nowy projekt, jednocześnie powinien automatycznie się przebudować. Ponieważ brak jest projektów zależnych to pojawią się błędy budowania. Czynność dodawania kolejnych projektów należy powtarzać do momentu gdy nie będzie żadnych błędów.
h2. Continous integration
Pod adresem @http://ci.ceon.pl@ znajduje się platforma kontroli poprawności tworzonego oprogramowania. Workflow działania jest następujący:
* # Programista zapisuje zmiany w centralnym repozytoium SVN poleceniem
$svn commit zmodyfikowany_plik -m "opis zmiany"
lub wskazując na jeden lub wiele plików w projekcie eclipse i za pomocą menu podręcznego @Team -> Commit@
* # Modyfikacja powoduje uruchomienie zadania przebudowy źródeł
http://ci.ceon.pl/job/yadda_build_4.4.x-AGRO-POPC/
Jeśli wystąpiły błędy budowania lub zmiana spowodowała błędy w testach automatycznych, programista otrzymuje powiadomienie maillowe. Jeśli budowanie przebiegło bez błędów, tworzone są tzw. snapshoty artefaktów i zapisywane w lokalnym artifactory @https://maven.ceon.pl/artifactory/yadda-snapshots/@
* # Raz na dobę zostaje aktualizowane środowisko testowe na serwerze lodowy.vls.icm.edu.pl. W tym celu automat CI pobiera najnowsze snapshoty aplikacji z artifactory i instaluje na testowym tomcacie @http://ci.ceon.pl/view/Yadda/job/yadda_deploy%20repo%20agro-popc-test%20at%20lodowy.vls/@ @http://ci.ceon.pl/view/Yadda/job/yadda_deploy%20ui%20agro-popc-test%20at%20lodowy.vls/@
* # Dodatkowo zostanie zrealizowany proces automatyczny uruchamiający testy tzw. integracyjne czyli badające odpowiedzi apliakcji Yadda uruchomionej w uproszczonym kontenerze aplikacji, bez wszystkich podsystemów zewnętrznych. Testy automatyczne w szczególności będą badały poprawność działnia inserfejsów APi. Testy integracyjne również będą uruhamiane w określonym interwale czasowym z uwagi na to że mogą powodować obciążenie serwera CI.
h2. Zasady pracy z kodem źródłowym
* Należy kierować się zasadami Coding Conventions https://wiki.yadda.icm.edu.pl/yadda/Public:Coding_conventions
* Wskazówki do uruchomienia lokalnie własnej platformy Yadda https://wiki.yadda.icm.edu.pl/yadda/Remoting_quick_start
* Gdzie tylko możliwe - należy tworzyć kod samotestujący się https://wiki.yadda.icm.edu.pl/yadda/Public:Automatic_tests