2012-08-12 7 views
7

Mam następujących konfiguracji aktywny i robocze:projekt budowy okresowo tylko wtedy, gdy zmiany znajdują się w repozytorium

  • Jenkins z Git i Sonar wtyczek
  • Jeden Jenkins pracy (project), który sondaże Git każda minuta
  • Jeden Jenkins pracy (project-sonar), który ankiety git co 24 godzin

Oba zadania podziela tą repozytorium git.

To pozwala mi budować mój projekt dla każdego zatwierdzenia, a następnie każdego dnia, tylko jeśli projekt się zmienił, uruchom analizę sonaru.

Ostatnio skonfigurowałem repozytorium git do wysyłania powiadomień do Jenkinsa, gdy projekt się zmienił, zgodnie z Push notifications from repository. To natychmiastowo buduje oba projekty, ale chcę, aby tylko szybkie (project) zostało zbudowane. Jeśli będę przesuwał okresowo project-sonar, analiza sonaru zostanie uruchomiona, nawet jeśli nie ma zmian w kodzie, co jest marnotrawstwem.

Jak mogę zachować

  • natychmiastowe build dla project build
  • codziennie budowania dla project-sonar build

?

+0

Jestem ciekaw co jest powodem zmieniłeś pracę z SCM ankiecie naciskać zgłoszenie? – aleung

+0

szybszy czas odpowiedzi dla kompilacji –

Odpowiedz

1

mam rozwiązać ten przy użyciu następującej metody:

  1. Wszystkie Jenkins projekty są nazwane po ich repozytorium (używam gitolite)
  2. mam aktywowane tylko spust buduje zdalnie do bazy buduje
  3. dodałem post-receive hak w gitolite który robi coś takiego

    $CURL --silent --netrc --insecure --connect-timeout 2 "$GIT_REMOTE_TRIGGER_URL/$GL_REPO/build?token=$JENKINS_BUILD_TOKEN" > /dev/null

  4. wszystkie zaplanowane zadania sonaru do sondowania SCM co 24 godziny

3

Zaimplementowałem coś bardzo podobnego do tego, na co patrzysz, używając wtyczki "Run Condition" do Jenkins. https://wiki.jenkins-ci.org/display/JENKINS/Run+Condition+Plugin

Wykonałem zadanie sonaru jako kontynuację zadania sondowania/budowania/testowania, z warunkami, które działają tylko raz dziennie.

+0

Dzięki za wskaźnik do wtyczki. Czy możesz udostępnić pewne szczegóły dotyczące sposobu wdrożenia warunku raz dziennie? –

+0

Przepraszam, że zajęło mi to kilka dni. Podczas przeglądu odkryłem, że moja odpowiedź była dość dokładna. Mamy osobno zaplanowane zadanie do wykonania kompilacji raz dziennie, a praca sonaru jest następstwem tego. Wtyczka Run Condition służy do kontrolowania dnia tygodnia (nie uruchamiamy sonaru przez weekend). –

+0

Zastanawiając się nad tym, możesz ustawić oddzielne codzienne zadanie, które od czasu ostatniego uruchomienia wypytuje o zmiany, i buduje i testuje, jeśli takie istnieją. Wykonaj zadanie sonaru jako krok kompilacji pod pluginem Run Condition, używając warunku stanu kompilacji i myślę, że daje to kontrolę, której szukasz. –

Powiązane problemy