Narzędzia:
Jenkins ver. 1,470
Maven 2
SubversionJenkins Partial Build/Modular Build na Commit Hook
Środowisko
Załóżmy mój build ma szereg projektów A-D. Wykres zależności istnieje tak, jak pokazano. To znaczy: B zależy od klas w A, C zależy od klas w B, D zależy od klas w A. Tworzymy kompilacje Jnkins w taki sposób, że nazywają one kompilacje zależne od nich jako działanie po wybudowaniu.
| -> B -> C
| -> D
Każdej nocy, możemy wywołać pełną budować w Jenkins (A buduje, wyzwala B (wyzwalacze C), wyzwalacze D). Robi się to dość łatwo, mówiąc A budować co noc, a reszta spływa kaskadami.
Problem
jednak na zatwierdzenie chcemy budować projekty, które zostały popełnione na raz.
Sytuacja 1: My odpytywanie repozytorium (lub użyć commit hooks, nie ma znaczenia), a okaże się, że doszło do popełnienia do B, a następnie B i C będą budować zbuduje. Sukces!
Sytuacja 2: My odpytywanie repozytorium i okaże się, że B i C zostały popełnione w jeden commit, następnie Jenkins będzie starał się budować B (wyzwalanie kompilacji C) i zbudować C (drugi build). Niepowodzenie. Zobacz, co się dzieje? C został zbudowany dwa razy, zabierając cenny czas budowy. Zachowaj szybką budowę!
Czy ktoś zna sposób, aby tylko wyzwolić najwyższy projekt w każdej zaangażowanej budowy rurociągu?
Przypuszczam jedno rozwiązanie byłoby skomplikowane hak SVN, który określa najwyższy projekt w każdej z nitek rurociągu ...
- Sytuacja 3: Zobowiązanie do B C i D w jednym popełnić. Wykrywanie haków SVN C zależy od B. Haczyk wywołuje specyficzne dla projektu odsyłacze do uruchamiania kompilacji dla B i D.
Pułapki: bardzo złożony hak commit SVN. Trzeba utrzymywać rurociąg w haku SVN.
Mam wrażenie, że to problem, na który napotykają inni. Czy istnieje wtyczka Jenkins, która pomaga w tym?
W przypadku 2, projekty Jenkins C & B patrzą na ten sam projekt svn? – thekbb