32

Próbuję skonfigurować TeamCity do zbudowania mojego projektu, ale mój buildscript psake zawodzi, a przyczyna zawęża się do niemożności znalezienia pliku wykonywalnego git, który powinien znajdować się na ścieżce. Kiedy uruchamiam PowerShell i wykonuję to sam, wszystko działa dobrze.Skąd agent budujący TeamCity pozyskuje środowisko ścieżki?

Zawartość zmiennej środowiskowej Path (jak pokazano na liście zmiennych systemowych w oknie dialogowym Zmienne okna środowisko, a także rejestr na HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path) jest

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Git\cmd 

jeszcze TeamCity mówi jej env.Path jest tylko

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Windows\System32\WindowsPowerShell\v1.0 

Po ponownym uruchomieniu komputera (wiele razy), który nie pomaga w ogóle.

Dlaczego zmienna PATH agenta programu TeamCity różni się od domyślnej wersji systemu i jak ją naprawić?

+0

Jakieś rozsądne rozwiązanie? – tishma

+1

Nienawidzę zgadywać, ale jeśli używasz go jako usługi Windows, środowisko pochodzi od użytkownika, który uruchamia usługę. – tishma

+0

Nie, bez rozwiązania. Porzuciłem TeamCity i teraz używam CruiseControl.net. – erikkallen

Odpowiedz

4

Rozwiązaniem jest Konfiguracja kompilacji/6 parametrów kompilacji, w których można zastąpić zmienne env. [ANYTHING].

P.S. Sry, żeby to usłyszeć. Nadal jestem zdeterminowany, aby odnieść sukces z TeamCity.

4

Moje rozwiązanie, wskazywały na wypowiedź tishma, był zmodyfikować zmienną Path środowiskową dla Użytkownika i zrestartuj Team City Build Agent Service

Edit: This bug została ustalona jako od TeamCity 7.1

15

wpadłem ten sam problem i konieczne jest tylko ponowne uruchomienie usługi agenta Build City Team, aby pobrać zmiany do zmiennej PATH.

+2

Arghhhhhhhhhh! http://stackoverflow.com/q/23204893/106261 – NimChimpsky

+0

To samo tutaj. Korzystanie z wersji 8.0.5 i ponowne uruchomienie agentów w celu uzyskania zmian. –

12

Można rozszerzyć ścieżkę dla agenta kompilacji, dodając parametr budowania o nazwie "env.PATH" o następującej wartości w systemach Mac OS i Linux.

%env.PATH%:/my/path 

W systemie Windows użyj ";" zamiast ":" jako ogranicznik ścieżki.

Do katalogu conf/buildAgent.properties można również dodać w katalogu instalacyjnym agenta kompilacji.

env.PATH=%env.PATH%:/my/path 

(Nie jest komentarz na dole pliku, który pokazuje, jak skonfigurować środowisko vars.)

+1

Ostrzegam: myślę, że 'env.PATH =% env.PATH%:/my/path' rozwiąże literał' "% env.PATH%:/my/path" 'until '% env.PATH%' had został już zdefiniowany w TC. Ale '% env.PATH%' nie jest tym samym, co próba dołączenia do istniejącej ścieżki za pomocą% PATH%; .... Aby to zrobić, możesz użyć %% PATH %%, aby uzyskać procentowe wartości procentowe ... – Schneider

6

Niektóre wcześniejsze odpowiedzi są poprawne, ale brakuje szczegółów (i zajmie mi trochę czasu, aby naprawdę zrozumieć je) - gdzie Agent domyślny przyjmuje zmienne środowiskowe, nie jest dla mnie jasne: tak jest tutaj, aby wyraźnie je naprawić w konfiguracji agenta.

Edytowanie pliku TeamCity/buildAgent/conf/buildAgent.properties za pomocą env.PATH=/usr/whatever wystarczy. Dokumentacja ma na ten temat dokument a small hint.

Raz edytowałeś ten plik, możesz sprawdzić w interfejsie użytkownika, w Agents > Default Agent > Agent Parameters > Environment Variables, czy zostały one zaktualizowane (uważaj, że zmienne są odświeżane w interfejsie, gdy agent jest podłączony, jeśli jest odłączony , interfejs użytkownika wyświetla poprzednie wartości).