Organizacja zaplecza programistycznego i testowego » History » Version 11

Tomasz Blazejczyk, 2019-03-07 10:05

1 1 Tomasz Blazejczyk
h1. Organizacja zaplecza programistycznego i testowego
2 1 Tomasz Blazejczyk
3 3 Tomasz Blazejczyk
h2. Używane narzędzia programistyczne
4 3 Tomasz Blazejczyk
5 11 Tomasz Blazejczyk
Oracje JDK w wersji 1.8
6 3 Tomasz Blazejczyk
Apache Maven
7 3 Tomasz Blazejczyk
Eclipse z wtyczkami obsługi SVN
8 3 Tomasz Blazejczyk
Subversion (SVN)
9 3 Tomasz Blazejczyk
10 1 Tomasz Blazejczyk
h2. Repozytorium kodu
11 1 Tomasz Blazejczyk
12 1 Tomasz Blazejczyk
Dla potrzeb projektu została stworzona dedykowana gałąź (branch) oprogramowania Yadda w repozytorium SVN.
13 1 Tomasz Blazejczyk
14 1 Tomasz Blazejczyk
Pobranie kodów źródłowych na dysk lokalny:
15 1 Tomasz Blazejczyk
16 1 Tomasz Blazejczyk
  $ mkdir dir
17 1 Tomasz Blazejczyk
  $ svn co svn+ssh://user@bwnsvn.icm.edu.pl/srv/svn/BWN2/projects/dir/branches/4.4.x-AGRO_POPC
18 1 Tomasz Blazejczyk
  $ cd  dir
19 1 Tomasz Blazejczyk
20 1 Tomasz Blazejczyk
Budowanie lokalnych artefaktów projektu - wymagany zainstalowany Apache Maven
21 1 Tomasz Blazejczyk
22 10 Tomasz Blazejczyk
  $ mvn clean install -Dmaven.test.skip=true
23 1 Tomasz Blazejczyk
24 1 Tomasz Blazejczyk
Budowanie zależności dla środowiska Eclipse
25 1 Tomasz Blazejczyk
26 1 Tomasz Blazejczyk
  $mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
27 1 Tomasz Blazejczyk
28 2 Tomasz Blazejczyk
opcje @downloadSources=true@ i @downloadJavadocs=true@ powodują skopiowanie dodatkowych bibliotek razem a ich źródłami i dokumentacją jeśli jest dostępna
29 3 Tomasz Blazejczyk
30 3 Tomasz Blazejczyk
Przygotowanie i konfiguracja projektu w IDE Eclipse
31 3 Tomasz Blazejczyk
32 3 Tomasz Blazejczyk
Każdy z podkatalogów jest osobnym projektem dlatego należy stworzyć nowy "workspace" i po kolei dodawać podprojekty.
33 3 Tomasz Blazejczyk
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.
34 3 Tomasz Blazejczyk
35 5 Tomasz Blazejczyk
h2. Serwery testowe
36 5 Tomasz Blazejczyk
37 5 Tomasz Blazejczyk
Na serwerze lodowy znajdują się testowe instancje dedykowane dla projektu
38 5 Tomasz Blazejczyk
39 5 Tomasz Blazejczyk
Repozytorium
40 5 Tomasz Blazejczyk
41 5 Tomasz Blazejczyk
 http://lodowy.vls.icm.edu.pl:9980/agro-test-repo/descriptor
42 5 Tomasz Blazejczyk
43 5 Tomasz Blazejczyk
Yaddaweb
44 5 Tomasz Blazejczyk
45 5 Tomasz Blazejczyk
 http://lodowy.vls.icm.edu.pl:7980/agro-test
46 5 Tomasz Blazejczyk
47 5 Tomasz Blazejczyk
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
48 5 Tomasz Blazejczyk
49 3 Tomasz Blazejczyk
h2. Continous integration
50 3 Tomasz Blazejczyk
51 3 Tomasz Blazejczyk
Pod adresem @http://ci.ceon.pl@ znajduje się platforma kontroli poprawności tworzonego oprogramowania. Workflow działania jest następujący:
52 3 Tomasz Blazejczyk
53 4 Tomasz Blazejczyk
* Programista zapisuje zmiany w centralnym repozytoium SVN poleceniem
54 3 Tomasz Blazejczyk
55 3 Tomasz Blazejczyk
  $svn commit zmodyfikowany_plik -m "opis zmiany"
56 3 Tomasz Blazejczyk
57 3 Tomasz Blazejczyk
lub wskazując na jeden lub wiele plików w projekcie eclipse i za pomocą menu podręcznego @Team -> Commit@
58 3 Tomasz Blazejczyk
59 4 Tomasz Blazejczyk
* Modyfikacja powoduje uruchomienie zadania przebudowy źródeł
60 3 Tomasz Blazejczyk
61 3 Tomasz Blazejczyk
  http://ci.ceon.pl/job/yadda_build_4.4.x-AGRO-POPC/
62 3 Tomasz Blazejczyk
63 3 Tomasz Blazejczyk
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/@
64 1 Tomasz Blazejczyk
65 4 Tomasz Blazejczyk
* 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/@
66 1 Tomasz Blazejczyk
67 6 Tomasz Blazejczyk
* 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.
68 4 Tomasz Blazejczyk
69 4 Tomasz Blazejczyk
h2. Zasady pracy z kodem źródłowym
70 4 Tomasz Blazejczyk
71 4 Tomasz Blazejczyk
* Należy kierować się zasadami Coding Conventions https://wiki.yadda.icm.edu.pl/yadda/Public:Coding_conventions
72 4 Tomasz Blazejczyk
* Wskazówki do uruchomienia lokalnie własnej platformy Yadda https://wiki.yadda.icm.edu.pl/yadda/Remoting_quick_start
73 4 Tomasz Blazejczyk
* Gdzie tylko możliwe - należy tworzyć kod samotestujący się https://wiki.yadda.icm.edu.pl/yadda/Public:Automatic_tests
74 7 Tomasz Blazejczyk
75 8 Tomasz Blazejczyk
h2. Web development
76 8 Tomasz Blazejczyk
77 7 Tomasz Blazejczyk
Nie jest wymagane uruchamianie całego repozytorium lokalnego w celu wykonania modyfikacji UI. Można połączyć się z repozytorium na serwerze "lodowy".
78 7 Tomasz Blazejczyk
Schemat postępowania jest następujacy:
79 1 Tomasz Blazejczyk
* Pobranie i zbudowanie źródeł jak w punkcie "Repozytorium kodu"
80 8 Tomasz Blazejczyk
* Osadzenie projektu "yaddaweb-lite" w odpowiednim IDE
81 8 Tomasz Blazejczyk
* Konfiguracja yaddaweb'a do pracy z repozytorium na lodowym - w pliku:
82 8 Tomasz Blazejczyk
83 9 Tomasz Blazejczyk
  yaddaweb-lite/src/main/etc/default_config.properties
84 8 Tomasz Blazejczyk
85 8 Tomasz Blazejczyk
należy wstawić/zmodyfikować następujące linijki:
86 8 Tomasz Blazejczyk
87 9 Tomasz Blazejczyk
  descriptorLocation=http://lodowy.vls.icm.edu.pl:9980/agro-test-repo/descriptor
88 9 Tomasz Blazejczyk
  yaddaweb.application-configuration=classpath:configuration-sets/application-only-agro.xml
89 8 Tomasz Blazejczyk
90 8 Tomasz Blazejczyk
Spowoduje to połączenie z reporyzytorium testowym na lodowym oraz skonfigurowanie yaddaweba według szablonów konfiguracyjnych dla kolekcji AGRO