2009-12-04 10 views
12

Mam następujący układ projektu:Wyzwalanie upstream projekt buduje przed dalszego projektu

  • WAR project
    • Upstream Projekty
      • Zależność B
      • Zależność C
      • Zależność D

Czekam na skonfigurować tak, aby za każdym razem Chcę wyzwolić kompilacji, to najpierw zbudować B, C i D. Jeśli któryś buduje dla B, C lub D nie wtedy kompilacja A powinna również zakończyć się niepowodzeniem.

Wygląda na to, że jest to typowa sprawa kompilacji, ale nie jestem pewien, jak to osiągnąć. Istnieją następujące opcje, ale nie wydają się mieć odpowiednią zależność:

  • Budowa Wyzwalacze - Zbuduj po inne projekty są zbudowane
    • zbuduje aktualny projekt po jakimś projektów wydobywczych, ale muszę kontrolować kompilację z tego projektu, ponieważ robię wdrożenie WAR. Chcę najpierw zawsze budować zależności.
  • Post-zbudować Actions - Budowanie inne projekty
    • zbuduje projektów po tym jednym, ale to wstecz na to, co chcę robić.

Czy istnieje konfiguracja budować w Hudson (lub za pomocą wtyczki), które będą pracować dla mnie?

Odpowiedz

5

To pojawiło się na liście dyskusyjnej Hudson bardzo niedawno. Nie ma bezpośredniego wsparcia dla tego typu konfiguracji kompilacji w Hudson.

Zobacz ten wątek: http://jenkins.361315.n4.nabble.com/On-demand-build-dependency-handling-simple-2-job-build-td624395.html

można użyć wtyczki Dołącz do stworzenia „Build + wdrożyć” pracę. Będzie miał B, C i D jako projekty niższego rzędu, a następnie "A" stanie się celem łączenia.

Tak więc B C i D musiałyby zakończyć się pomyślnie. Jeśli tak, uruchomi się proste zadanie typu "wdrażanie". W przypadku wystąpienia błędu A nie uruchomiłoby się. Jest to faktycznie to samo, o co prosisz.

Można przeczytać o sprzężeniu plugin tutaj: http://wiki.hudson-ci.org/display/HUDSON/Join+Plugin

+0

Dzięki za ten wpis, który był bardzo dokładny. W przypadku moich buildów, które używają maven2, wystarczy mi sondować ankiety na zadaniach zależności (B, C i D od oryginalnego pytania), publikować na repozytorium maven2 i uruchamiać budowanie projektu A, kiedy tylko zechcę. Jeszcze raz dziękuję. Plakaty miały rację, tak naprawdę nie potrzebujesz tego typu konfiguracji, jeśli możesz polegać na zarządzaniu zależnością maven/ivy. – abargnesi

+0

Link do linku to 404 – Nemi

1

Spójrz na projekcie Apache Ivy (http://ant.apache.org/ivy/). Bardzo dobrze radzi sobie z zależnościami projektu i ma wtyczkę dla Hudsona. Ze sposobu, w jaki opisujesz problem, myślę, że to rozwiązanie będzie dla ciebie skuteczne.

+0

Nie wspomniałem w oryginalnym poście, że już używamy maven2 do wszystkich naszych kompilacji. Byłem tak powiesił się na czysto atomowych, pogrupowanych konstrukcjach, że nie zdawałem sobie sprawy, że maven2/scm polling wykona sztuczkę dość skutecznie. Dzięki za informację. – abargnesi

1

Myślę, że Join Plugin jest tym, czego szukasz.więc ustawiasz zadanie A-Trigger, które wyzwala B, C, D i czeka, aż wszystkie zostaną zakończone, a A zostanie wyzwolony.

+0

Och, fajna wtyczka, tego nie widziałem. Spróbuję! – abargnesi

Powiązane problemy