2014-04-08 12 views
6

Mam plan w Bamboo, który rozpoczyna się po wprowadzeniu zmian w dołączonych repozytoriach (przez pobieranie).Atlassian Bamboo: nie wyzwalaj kompilacji, jeśli zmiany zostały wprowadzone w określonym pliku.

Po każdej kompilacji, jeśli się powiedzie, w repozytorium aktualizowany jest plik CHANGELOG, który z kolei uruchamia kolejną kompilację. Jak mogę pominąć niektóre pliki z ankiet Bamboo, więc kompilacja nie zostanie uruchomiona, jeśli zostaną znalezione zmiany dla tych plików? Ponieważ w przeciwnym razie wprowadzam w nieskończoną pętlę, ze zmianą na CHANGELOG wyzwalającą kolejną kompilację, która z kolei zaktualizuje CHANGELOG i tak dalej.

Jeśli nie jest to możliwe, jakie są inne możliwe rozwiązania? Czy jest możliwe dołączenie skryptu powłoki gdzieś, zanim kompilacja zacznie sprawdzać, czy chce rozpocząć nową kompilację?

Odpowiedz

7

Okazało się, że to było prostsze niż myślałem. W konfiguracji planu, w zakładce Repozytoria, w każdym repozytorium, w obszarze Zaawansowane, znajduje się wejście Włącz/wyłącz pliki, w których można dostosować, jakie pliki Bamboo używa do wykrywania zmian. Dodając tam wyrażenie regularne, wszystko zostało rozwiązane i działa zgodnie z oczekiwaniami.

Bamboo wzorzec dopasowania referencyjny: https://confluence.atlassian.com/display/BAMBOO/Pattern+matching+reference

2

Bamboo Documentation mówi:

Bamboo zignoruje budować wyzwalacze jeśli lokalna kopia robocza i repozytorium kopia mają te same numery wersji.

To może nie być najlepsze rozwiązanie, ale można dodać dodatkowe zadanie na końcu zadania/kompilacji, które aktualizuje ponownie repozytorium, aby uniknąć wyzwalania nowej wersji.

Nie jestem pewien, czy pomijałoby to kompilacje z aktualizacji repozytorium, które wystąpią podczas bieżącej kompilacji.

+0

To jest dobry pomysł, ale niestety dwa problemy pojawiają się: buduje nadal są wyzwalane jeśli Zobowiązuje się zdarzyć podczas gdy budowa jest w toku i dodając dodatkowe zadanie realizacji transakcji kodu źródłowego w koniec zadania, wyniki testu są usuwane, a więc zadanie parseru unieważnia się, powodując niepowodzenie kompilacji. – linkyndy

+0

Nie w pełni rozumiem pierwszy numer. Dlaczego to jest problem? I czy nie możesz uruchomić dodatkowego sprawdzania kodu źródłowego po zadaniu parser junit? – Luke

+0

Pierwszy numer to ten, o którym wspomniałeś w swoim ostatnim zdaniu. Jeśli zatwierdzę coś z bieżącej kompilacji, zostanie uruchomiona kolejna, niezależnie od tego, czy dodaję dodatkowe zadanie kasowania kodu źródłowego przed zakończeniem zadania. Odnośnie do drugiego, nie, nie mogę, ponieważ kiedy wykonuję drugie kasowanie kodu źródłowego, wszystko jest usuwane (ponieważ muszę wymusić czystą kompilację), podobnie jak wyniki testu. Bez wyników do parsowania zadanie z połączeniem się nie powiedzie, podobnie jak kompilacja. – linkyndy

Powiązane problemy