Organizacja zaplecza programistycznego i testowego » History » Version 7
Tomasz Blazejczyk, 2019-02-25 08:27
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 | 3 | Tomasz Blazejczyk | Apache Maven |
6 | 3 | Tomasz Blazejczyk | Eclipse z wtyczkami obsługi SVN |
7 | 3 | Tomasz Blazejczyk | Subversion (SVN) |
8 | 3 | Tomasz Blazejczyk | |
9 | 1 | Tomasz Blazejczyk | h2. Repozytorium kodu |
10 | 1 | Tomasz Blazejczyk | |
11 | 1 | Tomasz Blazejczyk | Dla potrzeb projektu została stworzona dedykowana gałąź (branch) oprogramowania Yadda w repozytorium SVN. |
12 | 1 | Tomasz Blazejczyk | |
13 | 1 | Tomasz Blazejczyk | Pobranie kodów źródłowych na dysk lokalny: |
14 | 1 | Tomasz Blazejczyk | |
15 | 1 | Tomasz Blazejczyk | $ mkdir dir |
16 | 1 | Tomasz Blazejczyk | $ svn co svn+ssh://user@bwnsvn.icm.edu.pl/srv/svn/BWN2/projects/dir/branches/4.4.x-AGRO_POPC |
17 | 1 | Tomasz Blazejczyk | $ cd dir |
18 | 1 | Tomasz Blazejczyk | |
19 | 1 | Tomasz Blazejczyk | Budowanie lokalnych artefaktów projektu - wymagany zainstalowany Apache Maven |
20 | 1 | Tomasz Blazejczyk | |
21 | 1 | Tomasz Blazejczyk | $ mvn clean install |
22 | 1 | Tomasz Blazejczyk | |
23 | 1 | Tomasz Blazejczyk | Budowanie zależności dla środowiska Eclipse |
24 | 1 | Tomasz Blazejczyk | |
25 | 1 | Tomasz Blazejczyk | $mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true |
26 | 1 | Tomasz Blazejczyk | |
27 | 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 |
28 | 3 | Tomasz Blazejczyk | |
29 | 3 | Tomasz Blazejczyk | Przygotowanie i konfiguracja projektu w IDE Eclipse |
30 | 3 | Tomasz Blazejczyk | |
31 | 3 | Tomasz Blazejczyk | Każdy z podkatalogów jest osobnym projektem dlatego należy stworzyć nowy "workspace" i po kolei dodawać podprojekty. |
32 | 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. |
33 | 3 | Tomasz Blazejczyk | |
34 | 5 | Tomasz Blazejczyk | h2. Serwery testowe |
35 | 5 | Tomasz Blazejczyk | |
36 | 5 | Tomasz Blazejczyk | Na serwerze lodowy znajdują się testowe instancje dedykowane dla projektu |
37 | 5 | Tomasz Blazejczyk | |
38 | 5 | Tomasz Blazejczyk | Repozytorium |
39 | 5 | Tomasz Blazejczyk | |
40 | 5 | Tomasz Blazejczyk | http://lodowy.vls.icm.edu.pl:9980/agro-test-repo/descriptor |
41 | 5 | Tomasz Blazejczyk | |
42 | 5 | Tomasz Blazejczyk | Yaddaweb |
43 | 5 | Tomasz Blazejczyk | |
44 | 5 | Tomasz Blazejczyk | http://lodowy.vls.icm.edu.pl:7980/agro-test |
45 | 5 | Tomasz Blazejczyk | |
46 | 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 |
47 | 5 | Tomasz Blazejczyk | |
48 | 3 | Tomasz Blazejczyk | h2. Continous integration |
49 | 3 | Tomasz Blazejczyk | |
50 | 3 | Tomasz Blazejczyk | Pod adresem @http://ci.ceon.pl@ znajduje się platforma kontroli poprawności tworzonego oprogramowania. Workflow działania jest następujący: |
51 | 3 | Tomasz Blazejczyk | |
52 | 4 | Tomasz Blazejczyk | * Programista zapisuje zmiany w centralnym repozytoium SVN poleceniem |
53 | 3 | Tomasz Blazejczyk | |
54 | 3 | Tomasz Blazejczyk | $svn commit zmodyfikowany_plik -m "opis zmiany" |
55 | 3 | Tomasz Blazejczyk | |
56 | 3 | Tomasz Blazejczyk | lub wskazując na jeden lub wiele plików w projekcie eclipse i za pomocą menu podręcznego @Team -> Commit@ |
57 | 3 | Tomasz Blazejczyk | |
58 | 4 | Tomasz Blazejczyk | * Modyfikacja powoduje uruchomienie zadania przebudowy źródeł |
59 | 3 | Tomasz Blazejczyk | |
60 | 3 | Tomasz Blazejczyk | http://ci.ceon.pl/job/yadda_build_4.4.x-AGRO-POPC/ |
61 | 3 | Tomasz Blazejczyk | |
62 | 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/@ |
63 | 1 | Tomasz Blazejczyk | |
64 | 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/@ |
65 | 1 | Tomasz Blazejczyk | |
66 | 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. |
67 | 4 | Tomasz Blazejczyk | |
68 | 4 | Tomasz Blazejczyk | h2. Zasady pracy z kodem źródłowym |
69 | 4 | Tomasz Blazejczyk | |
70 | 4 | Tomasz Blazejczyk | * Należy kierować się zasadami Coding Conventions https://wiki.yadda.icm.edu.pl/yadda/Public:Coding_conventions |
71 | 4 | Tomasz Blazejczyk | * Wskazówki do uruchomienia lokalnie własnej platformy Yadda https://wiki.yadda.icm.edu.pl/yadda/Remoting_quick_start |
72 | 4 | Tomasz Blazejczyk | * Gdzie tylko możliwe - należy tworzyć kod samotestujący się https://wiki.yadda.icm.edu.pl/yadda/Public:Automatic_tests |
73 | 7 | Tomasz Blazejczyk | |
74 | 7 | Tomasz Blazejczyk | h3. Web development |
75 | 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". |
76 | 7 | Tomasz Blazejczyk | Schemat postępowania jest następujacy: |
77 | 7 | Tomasz Blazejczyk | * Pobranie i zbudowanie źródeł jak w punkcie "Repozytorium kodu" |