2016-05-17 75 views
0

我有以下我的CI環境指南針詹金斯CI編譯

cd /var/www/html 

php vendor/bin/phpunit app/tests --log-junit /var/lib/jenkins/jobs/Closecall/workspace/tests/reports/junit.xml 
php vendor/bin/phinx migrate -e development 
sudo compass compile 

ssh方式連接到CI和編譯自己工作正常執行腳本,但是當CI上構建執行這個我收到以下錯誤

+ sudo compass compile 
sudo: no tty present and no askpass program specified 
Build step 'Execute shell' marked build as failure 
Recording test results 
Finished: FAILURE 

任何想法?

回答

0

sudo默認情況下會嘗試打開/dev/tty進行讀寫。您可能沒有/dev/tty在您用來構建的機器上。在/etc/sudoers文件中配置需要tty

sudo有一個選項-S從標準輸入讀取密碼而不是/dev/tty。您應該能夠使用sudo -S進行編譯。

-S(stdin)選項會導致sudo從標準輸入而不是終端設備讀取密碼。密碼後面必須跟一個換行符。

http://linux.die.net/man/8/sudo

+0

我固定它做類似的東西,加入詹金斯NOPASSWD記錄到visudo命令文件。這似乎應該也可以工作,謝謝! –