在 Jenkins 上编译 Compass CI

Compass compile on Jenkins 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

有什么想法吗?

sudo 默认尝试打开 /dev/tty 进行读写。您用于构建的机器上可能没有可用的 /dev/ttytty 的需要在 /etc/sudoers 文件中配置。

sudo 有一个选项 -S 可以从标准输入而不是 /dev/tty 读取密码。您应该能够使用 sudo -S.

进行编译

The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device. The password must be followed by a newline character.

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