32

Tôi đang cố gắng thiết lập TeamCity để xây dựng dự án của mình, nhưng bản dựng psake của tôi không thành công, với lý do bị thu hẹp xuống để không thể tìm thấy tệp thực thi git, được cho là trên đường dẫn. Khi tôi bắt đầu một PowerShell và thực hiện điều đó một mình, mọi thứ hoạt động tốt.Nhân viên xây dựng TeamCity có môi trường đường dẫn từ đâu?

Nội dung của biến môi trường Path (như thể hiện trong danh sách các biến hệ thống trong hộp thoại biến cửa sổ Môi trường, cũng như đăng ký tại HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path) được

%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 

chưa TeamCity nói env.Path của nó là chỉ

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 

Tôi đã khởi động lại máy tính (nhiều lần) không giúp được gì.

Tại sao biến PATH của đại lý TeamCity khác với mặc định của hệ thống và cách khắc phục?

+0

Bất kỳ giải pháp hợp lý nào chưa? – tishma

+1

Tôi ghét đoán, nhưng nếu bạn đang chạy nó như một dịch vụ cửa sổ, môi trường sẽ đến từ người dùng chạy dịch vụ. – tishma

+0

Không, không có giải pháp. Tôi bỏ TeamCity và bây giờ sử dụng CruiseControl.net thay thế. – erikkallen

Trả lời

4

Giải pháp nằm trong Cấu hình xây dựng/6 Thông số xây dựng nơi bạn có thể ghi đè các biến [enYTHING].

P.S. Sry nghe điều đó. Tôi vẫn quyết tâm thành công với TeamCity.

4

Giải pháp của tôi, ám chỉ bởi bình luận tishma của, đã được sửa đổi biến Path môi trường cho tài và khởi động lại Team City Build Agent Service

Edit: This bug đã được khắc phục của TeamCity 7.1

15

Tôi chạy vào cùng một vấn đề này và chỉ cần khởi động lại Team City Build Agent Service để nhận các thay đổi đối với biến PATH.

+2

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

+0

Tương tự tại đây. Sử dụng 8.0.5 và phải khởi động lại các tác nhân để có được những thay đổi được chọn. –

12

Bạn có thể mở rộng đường dẫn cho tác nhân xây dựng bằng cách thêm tham số xây dựng có tên "env.PATH" với giá trị sau trên Mac OS và Linux.

%env.PATH%:/my/path 

Trên Windows sử dụng ";" thay vì ":" làm dấu phân cách đường dẫn.

Bạn cũng có thể thêm thông tin sau vào conf/buildAgent.properties trong thư mục cài đặt tác nhân xây dựng của mình.

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

(Có một nhận xét ở cuối của tập tin đó cho thấy làm thế nào để thiết lập môi trường vars.)

+1

Được cảnh báo: Tôi nghĩ 'env.PATH =% env.PATH%:/my/path' sẽ giải quyết thành chữ' "% env.PATH%:/my/path" 'trừ khi'% env.PATH% 'có đã được xác định trước đó trong TC. Nhưng '% env.PATH%' không giống như cố gắng thêm vào đường dẫn hiện có của bạn bằng% PATH%; .... Để làm điều đó, bạn có thể cần phải sử dụng %% PATH %% để tỷ lệ phần trăm được thoát ... – Schneider

6

Một số câu trả lời trước là chính xác, nhưng đang thiếu chi tiết (và đưa tôi một thời gian để thực sự hiểu chúng) - Trường hợp tác nhân mặc định lấy biến môi trường của nó không rõ ràng với tôi: do đó, đây là cách để sửa chữa rõ ràng chúng trong cấu hình tác nhân.

Chỉnh sửa tệp TeamCity/buildAgent/conf/buildAgent.properties với env.PATH=/usr/whatever sẽ thực hiện thủ thuật. Tài liệu có a small hint về điều đó.

Khi bạn đã chỉnh sửa tệp đó, bạn có thể kiểm tra trong giao diện người dùng, trong Agents > Default Agent > Agent Parameters > Environment Variables rằng chúng đã được cập nhật (cẩn thận, suy nghĩ, các biến đó chỉ được làm mới trong giao diện người dùng khi tác nhân được kết nối; , giao diện người dùng hiển thị các giá trị trước đó).