2015-10-10 64 views
2

我有一個Jenkins服務器正在運行,並且有一些工作正常的構建。然而,今天早上,當我試圖添加另外一個它一直與錯誤而失敗 -Jenkins構建失敗,即使文件存在,但丟失文件錯誤

[test.gov] $ /bin/sh -xe /tmp/hudson7055290339554583413.sh + ./opt/jenkins/build.sh /tmp/hudson7055290339554583413.sh: line 2: /opt/jenkins/build.sh: No such file or directory Build step 'Execute shell' marked build as failure

shell腳本是在這條道路,有這個名字。如果我製作./opt/jenkins/build.sh,它仍然會失敗並出現相同的錯誤。我在「Command」文本框的「Execute Shell」部分中輸入的命令是/opt/jenkins/build.sh。我也嘗試了./opt/jenkins/build.sh

該腳本是在CentOS系統btw上。

這劇本我試圖運行 -

echo "git pull" 
cd /var/www/path/for/my_website/docroot/ 
git checkout master 
git pull 


echo "change ownership to apache" 
chown -R apache:apache * 
echo "running drush commands" 
drush updb -y 
#drush fra -y 
drush cc all 
+0

您是否找到解決此問題的實際解決方案?我面對同樣的情況。 –

回答

0

有時在shell命令,一個你的路「」可能無法工作。相反,使用宏表達式來獲取工作區。

因此,例如:工作區%%/選擇/詹金斯/ usda_gov_build.sh

這會給shell命令在您的工作的工作區文件的確切路徑。

+0

是你的Jenkins服務器Linux還是Windows?通常我只有在有人試圖在Windows服務器上運行linux命令時纔看到這一點。 – duffycb89

+0

Linux。我相信CentOS。如果有用,服務器中的其他作業在命令文本區域中具有'/ opt/jenkins/deploy/bin/build2.sh',即使到達其shell腳本的路徑是/ opt/jenkins/deploy /斌/ build2.sh'。 – Proximus

+0

我將驗證的下一件事是該文件位於您期望的路徑中,方法是在運行後檢查構建工作區。有時候我看到的路徑不同於我期待的其他時間我已經看到源代碼管理不會拉入我期望的文件 – duffycb89

0

通常「build.sh:沒有這樣的文件或目錄」錯誤實際上意味着build.sh中的shebang行沒有指向可執行文件。檢查build.sh的內容以確保路徑存在。

+0

感謝您的迴應,但我的shell腳本中沒有shebang行。我希望腳本所做的就是進入Drupal網站的文檔根目錄,並執行git checkout/pull。我編輯了我的原始問題並在那裏添加了我的腳本,所以如果您發現有問題,請告訴我。 – Proximus

+1

有趣。當我在構建窗口中運行'ls -lah'時,它給我的輸出表明它出於某種原因不能看到任何shell腳本。就像我在/ opt/jenkins文件夾裏面一樣,我在那裏有大約6個shell腳本,但是當它執行ls -lah時,由於某種原因它沒有看到它們。你知道爲什麼會這樣嗎? – Proximus