Organizacja zaplecza programistycznego i testowego

Używane narzędzia programistyczne

Oracje JDK w wersji 1.8
Apache Maven
Eclipse z wtyczkami obsługi SVN
Subversion (SVN)

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:///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 -Dmaven.test.skip=true

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.

Serwery testowe

Na serwerze lodowy znajdują się testowe instancje dedykowane dla projektu

Repozytorium

http://lodowy.vls.icm.edu.pl:9980/agro-test-repo/descriptor

Yaddaweb

http://lodowy.vls.icm.edu.pl:7980/agro-test

Znajduje się tam osobna kopia danych z głównej instancji testowej. Możliwa jest praca w pełnym zakresie, tzn. import danych, przebudowa widoków i indeksów, wyszukiwanie i prezentacja danych w UI Yaddaweb oraz podłączanie i modyfikacja danych za pomocą aplikacji DeskLight

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

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 aplikacji Yadda uruchomionej w uproszczonym kontenerze aplikacji, bez wszystkich podsystemów zewnętrznych. Testy automatyczne w szczególności będą badały poprawność działania interfejsów APi. Testy integracyjne również będą uruchamiane w określonym interwale czasowym z uwagi na to że mogą powodować obciążenie serwera CI.

Zasady pracy z kodem źródłowym

Web development

Nie jest wymagane uruchamianie całego repozytorium lokalnego w celu wykonania modyfikacji UI. Można połączyć się z repozytorium na serwerze "lodowy".
Schemat postępowania jest następujacy:
  • Pobranie i zbudowanie źródeł jak w punkcie "Repozytorium kodu"
  • Osadzenie projektu "yaddaweb-lite" w odpowiednim IDE
  • Konfiguracja yaddaweb'a do pracy z repozytorium na lodowym - w pliku:
yaddaweb-lite/src/main/etc/default_config.properties

należy wstawić/zmodyfikować następujące linijki:

descriptorLocation=http://lodowy.vls.icm.edu.pl:9980/agro-test-repo/descriptor
yaddaweb.application-configuration=classpath:configuration-sets/application-only-agro.xml

Spowoduje to połączenie z reporyzytorium testowym na lodowym oraz skonfigurowanie yaddaweba według szablonów konfiguracyjnych dla kolekcji AGRO