Pytanie Ciągłe oprogramowanie do integracji z obsługą Git i bramkowanego check-in?


Patrzyłem na TFS, TeamCity, Jenkins i Bamboo i szczerze mówiąc, żaden z nich nie był przekonujący. chcę

  • Dobre raportowanie
  • Dobre wsparcie Gita
  • Gated / delayed check-in / commit
  • Integracja z produktami Visual Studio i / lub Atlassian
  • Rozwiązanie nie powinno wymagać regularnych programistów do korzystania z wiersza poleceń lub terminala (Git Extensions FTW)

TFS to bałagan do skonfigurowania i pracy z ogólnie rzecz biorąc, nie obsługuje oczywiście Git, ale ma bramkowane check-in (choć wydaje się niepotrzebnie sprawdzić cały projekt za każdym razem, a więc jest wolny?). Również naprawdę brakuje w dziale raportowania.

TeamCity ma naprawdę złe bramki, jeśli chodzi o check-in, jeśli chodzi o Gita, w przeciwnym razie jest to moje ulubione. Obsługuje wiele rzeczy po wyjęciu z pudełka.

Raportowanie w Jenkinsie jest złe (historyczne trendy itd.), Wydaje się, że ma więcej błędów niż inne, a jakość wtyczki może być przerażająca. Z drugiej strony jest darmowy i wszechstronny. W jaki sposób można uzyskać wsparcie dla Git i bramkowanych zameldowań?

Bamboo oczywiście ma świetną integrację Atlassian, ale nie obsługuje bramkowanych check-inów. :(

Jakakolwiek rada?


13
2017-08-28 08:25


pochodzenie




Odpowiedzi:


@ arex1337 Wszystkie przedstawione tutaj odpowiedzi mają swoje zalety. Doświadczenie mówi nam, że żaden projekt / organizacja nie jest zawsze zadowolony z jednego dostawcy dla wszystkich jego potrzeb. Prawdopodobnie będziesz mieć podstawowe narzędzie CI z mieszanką wtyczek / dodatków od innych dostawców, którzy posiadają własne USP.


Jako przykład :

Jenkins jako podstawowe narzędzie. @Aura i @sti już wspomniały o wszystkich dobrych rzeczach; podczas gdy możemy zgodzić się, że rozwój wtyczki jest trochę niekontrolowany, wciąż jest ich dużo, co zapewnia doskonałą jakość. Najważniejszą rzeczą jest to, że społeczność jest aktywna, naprawdę zwinna (normalnie mają 1 wydatek na tydzień) i wszelkie problemy, które możesz mieć, są łatwe do rozwiązania. Dodatkową korzyścią jest łatwe tworzenie wtyczek, więc jeśli popchniecie do przodu, możecie napisać własną.

@Mark O'Connor jest świetny z SONAR sugestia. Jedna z najlepszych, jakie możesz uzyskać w zakresie raportowania i otrzymywania świetnych raportów. A @Thomas oczyścił powietrze z zamkniętych zobowiązań


Na korzyść Jenkinsa:

Dobre raportowanie - Masz to z SONAR + Jenkinsem

Dobre wsparcie Gita - Jenkins to daje

Gated / delayed check-in / commit - Wtyczka Jenkins Gerrit

Integracja z produktami Visual Studio i / lub Atlassian - Sam wiki wiki Jenkins działa na Atlassian. Poniżej znajduje się lista niektórych integracji

Koniczyna , Tłum , Zbieg, JIRA: Plugin1  Plugin2  Plugin3

Nie powinno wymagać od zwykłych programistów korzystania z interfejsu CLI - Jenkins nie


Teraz możesz zastąpić Jenkins z Bambus w powyższym przykładzie i może zbliżyć się do tego, co chcesz. Ale teraz wydaje się, że najlepszym rozwiązaniem jest Jenkins.

TFS i TeamCity : Nie ma jeszcze w lidze Jenkinsa i Bamboo.


5
2017-09-05 06:43





  1. Verigreen to rozwiązanie po stronie serwera do weryfikacji zatwierdzeń git, które jest w pewien sposób podobne do Gated Check in z TFS.
     Popchnie tylko te zatwierdzenia do chronionego oddziału, które są budowane pomyślnie.
  2. Travis to usługa CI używana do budowania i testowania aplikacji.

3
2018-03-29 16:26



Mały komentarz, Verigreen nie jest wtyczką git, ale raczej bramkowanym systemem odprawy, który utrzyma Twój chroniony oddział zawsze na zielono. Użytkownicy Git używają go do wyzwalania buildów w Jenkins. - soninob
@soninob - tak, to nie jest plugin git. Zmieniono moją odpowiedź. Nie jest również używane do wywoływania kompilacji jenkina, jest to coś, co nie pozwoli na nieudane zatwierdzenia w chronionym oddziale. Powiadomi również zgłaszającego o stanie. - Jay Shah
Verigreen uruchamia Jenkinsa - tak to działa. Podajesz nazwę pracy Jenkins do pliku właściwości Verigreen. Każde zatwierdzenie wykryte przez system, wyzwalające zadanie i monitorujące kompilację pod kątem wyników w oparciu o wyniki kompilacji, decyduje, czy przekazać zatwierdzenie do chronionego oddziału, czy nie. Oczywiście nie jest to tak potężne w VG, ale raczej proces permutacji, który pozwala radzić sobie z wieloma zatwierdzeniami i zrozumieć, co jest problematycznym zatwierdzeniem i usunięciem. Twoje zdrowie :-) - soninob
Jeśli chcesz dowiedzieć się więcej o Verigreen, możesz sprawdzić ten post: stackoverflow.com/questions/12484424/... - soninob


Czy spojrzałeś na Gerrit?

Opiera się na Git, ma bramkowe commity (przynajmniej jeśli dobrze rozumiem, co masz na myśli, mówiąc o bramkowanym zatwierdzeniu) i ma naprawdę ładne funkcje przeglądania.

Możesz zintegrować Gerrita z Jenkinsem ta wtyczka, ale nie jestem pewien co do Atlassian i Visual Studio.


2
2017-08-28 08:32



Naprawdę nie pasuje. Przez bramę zatwierdzam mam na myśli to, że zatwierdzenia, które nie budują i nie przechodzą testów jednostkowych (i ewentualnie innych reguł) są odrzucane.
Tak, to możliwe dzięki Gerritowi i wtyczce Gerrit-Trigger dla Jenkinsa. - dunni
Zobacz także, jak używać sonaru do raportowania o budowaniu. Do analizy C # nie zawracaj sobie głowy korzystaniem z wtyczki Jenkins Sonar (zoptymalizowanej pod kątem kompilacji Mavena), zamiast tego użyj biegacza Java, który nazywa się Jenkins. - Mark O'Connor


Dobre pytanie! Szeroko szeroki. Nie można porównać wszystkich produktów CI.

Tak więc, o ile mi się wydaje, jesteś w trakcie podejmowania decyzji. Więc pozwól mi pomóc z kilkoma sugestiami.

Przechodząc przez twoje pytanie, pierwszą rzeczą, którą chcesz, jest dobre raportowanie.

Jenkins może być używany do bardzo interaktywnego raportowania. Istnieje kilka wtyczek, które pozwalają Jenkinsowi dostosować format raportu. Możesz także zdefiniować szablon HTML, a następnie możesz uzyskać spersonalizowany, poprawnie sformatowany, obejmujący prawie wszystkie aspekty wymagań dotyczących raportu. Można to również wysłać pocztą elektroniczną do zainteresowanych osób / także do osób, które są winne i winnych!

Następnie potrzebujesz dobrej obsługi git: Jenkins zapewnia świetną obsługę Git. Istnieje kilka wtyczek dostępnych dla Git (np. Github Plugin). Ponieważ obawiasz się, że ma więcej błędów i jakość wtyczek może być przerażająca, ale wtedy żadne oprogramowanie nie jest wolne od błędów! Niedawno Jenkins wypuścił stabilną wersję 1.478, która jest wolna od wielu poprzednich błędów (używam) 1.401 i W ciągu ostatnich 10 miesięcy nie spotkałem nawet jednego błędu). Wierzę, że Jenkins ciągle się rozwija i stale rozwijają się nowe wtyczki, rozszerzające jego zastosowanie i zakres. Jeżeli twój Projekt musi zostać przedłużony w przyszłości, więc Jenkins może być bardzo przydatny.

Opuszczony / opóźniony Odprawa: O ile mi wiadomo, Jenkins może być używany do Gated / Delayed Check-ins / Commits (nie jestem pewien, ale będę Cię informował, gdybym natknął się na takie informacje). | Zrobiłem trochę badań nad nim i zdałem sobie sprawę, że jest to własność SVN i nie jest związane z Jenkinsem, więc jeśli twój SVN obsługuje bramkowane / opóźnione check-in niż nie musisz się martwić o to, jak Jenkins jest po prostu medium dostępu do niego

Jenkins nie wymaga używania skryptów wiersza poleceń, chyba że projekt tego wymaga. Osoba niebędąca deweloperem może również "zarządzać Jenkinsem"! Jest łatwy w konfiguracji i obsłudze, ponieważ ma świetny interfejs użytkownika i ma wiele pomocy dostępnych w Internecie.

Jenkins został opracowany w Javie, więc Tworzenie wtyczek jest również łatwe. W zależności od potrzeb można napisać własną wtyczkę i rozszerzyć jej funkcjonalność.

Jenkins można łatwo zintegrować z produktami Atlassian (kilka wtyczek jest dostępnych do integracji różnych produktów Atlassian z Jenkinsem, np. JIRA Plugin) (jeszcze nie wiadomo o Visual Studio).


2
2017-09-02 06:58



kciuki za Jenkinsa z mojego doświadczenia - Pulak Agrawal


Wtyczka Jenkins Git może wspierać bramkowe zatwierdzenia. Sprawdź opis wtyczki Git strona wiki

Jakiego rodzaju raportowania szukasz? Jenkins ma różne kanały RSS i historyczne trendy. Istnieje kilka wtyczek, które dodają pewne raporty. Także jest Wtyczka działki co ułatwia (ish) tworzenie własnych wykresów. A może raporty z Wtyczka Ostrzeżenia jest tym, czego szukasz.


1
2017-08-28 21:47





Używam TFS 2012 Express. Nigdy wcześniej nie korzystałem z poprzednich wersji TFS, ponieważ wyglądały mi jak bałagan do konfiguracji i administrowania, ale bardzo się poprawiły dzięki najnowszej wersji. Zobacz prezentację na http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV346


0
2017-09-06 11:05





Chiming późno z tym, ale hostowane usługi TFS jest świetny w użyciu w zakresie konfiguracji, a teraz obsługuje GIT. Jeśli pójdziesz z rozwiązaniem TFS na miejscu i podłączysz go do SQL Reporting Services, dostaniesz więcej raportów, niż możesz sobie wyobrazić. Jeśli przejdziesz przez cały proces i dodasz SharePoint, otrzymasz także witryny oparte na projektach.

Jeśli wchodzisz all-in z TFS, myślę, że będziesz miał trudności ze znalezieniem czegoś, co można by porównać, ponieważ każda część jest ważnym produktem. Tworzenie błędów w Excelu i przekazywanie ich do hosta TFS to jedna z największych rzeczy. Koniec z wybrednym interfejsem internetowym. możesz też zaplanować z MS Project, jeśli to twoja torba. W każdym z nich masz Office (Project, Excel) do szczegółowego tworzenia i zarządzania zadaniami, SharePoint dla Wiki, raportowania SQL dla twoich raportów (rezygnacja z kodu, nieudane obliczenia itp.) I TFS (z GIT) dla ciebie kontrola źródła i klej dla pozostałe części.

Oczywiście oznacza to, że jesteś w 100% w ekosystemie MS, a to samo w sobie może być dla wielu bardzo przerażającym czynnikiem. Jeśli po prostu rzucasz ciosami, chociaż uważam, że jest świetny. Wiele negatywności opiera się na starych systemach i ogólnej percepcji MS.


-1
2018-05-28 18:43