2015-03-26 27 views
10

Od GitLab 7.6, lub w pobliżu, istnieje nowa opcja użycia TeamCity bezpośrednio z projektów GitLab. W konfiguracji nie jest to wiadomość:Integracja GitLab z TeamCity

Konfiguracja kompilacji w TeamCity należy użyć formatu numer kompilacji % build.vcs.number% będzie również chcesz skonfigurować monitorowanie wszystkich oddziałów tak połączyć wnioski budować, że ustawienie jest w zaawansowanym ustawieniu vsc root .

Nie jestem pewien, jak to działa. Powiedzmy, że mam repozytorium Foo.

Mam konfiguracji kompilacji na TeamCity wysłuchać Foo ze specyfikacją Branża: +:refs/pull/*/merge

Potem widelec Foo w gitlab jako FooFork, dokonać zmian, a następnie zażądać FooFork scalania -> foo.

Ale nic się nie dzieje, aby przetestować to połączenie, czego oczekiwałem od GitLab. Jeśli zaakceptuję scalenie, serwer budowania skacze do akcji (natychmiast) i buduje dwa razy (master i /ref/master).

Ustawiłem również konfigurację kompilacji tak, aby użyła dokładnie:% build.vcs.number% jako numer kompilacji zgodnie z zaleceniami, ale gitlab nie daje mi żadnych informacji o wyniku kompilacji.

Tak więc jestem nieco zdezorientowany, co dokładnie ma robić ta integracja z GitLab -> TeamCity i czy robię coś złego.

Jestem aktualnie uruchomione GitLab 7.9, TeamCity 8.1.4

Aktualizacja:

Wygląda to przypadek użycia nie był wspierany przed wersją 8 - https://github.com/gitlabhq/gitlabhq/issues/7240

+0

Powinieneś odpowiedzieć sobie na własne pytanie, że ta sprawa nie jest obecnie obsługiwana i zamknąć ją, aby inni użytkownicy, którzy mają ten sam problem, mogli się do tego odnieść. – JNYRanger

Odpowiedz

6

biegnę GitLab 8.0.2 i 9.1.1 TeamCity i jestem w stanie uruchomić CI opiera się na gałęziach i scalanie żądań.

Wywołuję kompilacje CI dla określonych oddziałów, ustawiając wyzwalacz VCS razem z branch specification+:refs/heads/(xyz*), gdzie xyz jest ciągiem dla prefiksu systemu biletowego, ponieważ wszystkie aktywne gałęzie muszą być nazwane po wpisie w naszym narzędziu do śledzenia problemów.

I wywołać buduje dla żądań seryjnej poprzez specyfikacji oddziału +:refs/(merge-requests/*)

wszystko działa tak jak oczekiwano i pozwala nam poznać stan wszystkich funkcji/oddziałów błędów i automatycznie łączyć żądań.

Dzięki komentarzowi Robowi powiązanemu z wpisem do wydania GitLab 8 na żądanie połączenia specyfikacji.

+0

TeamCity nie widzi żądań scalenia = ( –

+0

Przyznam, że przełączyłem się na GitLab CI, więc nie wiem, czy to zadziała, jeśli nie, ponownie otworzę pytanie: –

+1

Używanie GitLab-Enterprise tutaj, normalnie powinieneś być w stanie zobaczyć żądania scalenia, zwykle jest to 'refs/merge-requests//head', spróbuj zrobić' $ git ls-remote' na repo, który jest zdalnym punktem do repozytorium GitLab, repo. – Rob

2

sam problem tutaj. Może być inny sposób, oceniam teraz. Ponieważ nie ma bezpośredni sposób na uzyskanie stanu połączonego z tarczy MR, trzeba budować na własną rękę:

IMO jest następujący todos
1.) init, gołe repo $ git init
2.) Dodaj firmę target repo $ git remote add origin [email protected]:<origin.group>/<origin.repo>.git
3.) dodać kasy scalanie do zdalnego/funkcja/na $ git remote add target [email protected]:<feature.group>/<feature.repo>.git
4.) swój oddział funkcja $ git checkout -b <feature.branch> feature/<feature.branch>
5.) kasy oryginalny oddział $ git checkout -b <origin.branch> origin/<origin.branch>
6.) rebase funkcję do swojego pierwotnego oddziału $ git rebase <feature.branch>

Jak stwierdzono tutaj [1], GitLab-CE może wystrzelić zdarzenie na tworzeniu korespondencji seryjnej życzenie

więc wszystko co musisz zrobić, to budowanie jakiejś meta, które można ocenić WebHooks.

[1] http://doc.gitlab.com/ce/web_hooks/web_hooks.html#merge-request-events

+0

Wygląda na to, że gitlab uzyskuje tę funkcję w GitLab-8.0.0, jak widać tutaj: https://github.com/gitlabhq/gitlabhq/blob/master/CHANGELOG > - Możliwość pobierania żądań scalania z refs/merge- requests /: id – Rob