簡體   English   中英

Jenkins奴隸無法找到SVN

[英]Jenkins slave not able to find svn

我在從屬主機上無法正常運行的從屬服務器上工作失敗。 SVN與從屬服務器/usr/local/bin/svn安裝位置相同。 我在奴隸上有一個Jenkins用戶,它可以運行svn --version OK。

[INFO] Executing: /bin/sh -c cd /var/jenkins/workspace/projecta && svn --non-interactive update /var/jenkins/workspace/projecta

[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] /bin/sh: svn: not found

我正在使用Subversion插件,它在從屬服務器上運行良好,並在作業開始時運行。 問題似乎是某些模塊使用了Maven內部版本號插件。

如您在上面的日志中所看到的,它正在運行一個腳本,該腳本似乎以Jenkins用戶的身份在從屬服務器上運行,並在主機(這是另一個版本)上選擇客戶端。

因此,我認為它是使用Subversion插件版本簽出代碼,然后嘗試在主機的PATH上更新舊版本。 在master上一切正常,因為它只有一個版本的svn。

注意 :Jenkins Shell以/ bin / sh的身份運行,而不是以bash的身份運行,因此,您期望在bash中易於使用的許多路徑實際上並不存在。 即使您以jenkins用戶身份成功運行svn --version ,也有可能正在使用bash(因此bash已將某些常規路徑加載到PATH變量中)。

選項1

將以下內容添加到“ Execute Shell”或shell腳本中:

PATH = $ PATH:/ usr / local / bin

那應該讓它找到顛覆。 但是,您必須為每項工作執行此操作。

選項2-更好的選擇

您的另一個選擇是在從屬配置頁面上添加以下內容:

配置

環境變量

名稱= PATH值= $ PATH:/ usr / local / bin

這應該為您在此從屬服務器上運行的每個構建自動設置它。 您可以在此處視需要找到其他路徑。

同樣,請注意,當您在從屬頁面上進入“系統信息”時,該信息將不會顯示(它會顯示默認的系統信息)。 但是,它將為每個版本添加

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM