2013-01-06 115 views
0

我的一个Jenkis CI的工作是通过ImageMagick和GhostScript转换PDF(简而言之,它只是做它)。奇怪的是,当从命令行(通过SSH)调用它,但在詹金斯开始失败。更奇怪的是,底层的gs命令(转换使用gs转换PDF)的作品。ImageMagick在命令行中工作,但在Jenkins中执行失败执行shell

脚本:

#!/bin/bash -e 
export MAGICK_TMPDIR=`pwd`/tmp 
/usr/local/bin/convert -verbose /Users/Shared/Jenkins/Home/jobs/test/workspace/example.pdf /Users/Shared/Jenkins/Home/jobs/test/workspace/example_1.jpg 

詹金斯输出:

[workspace] $ /bin/bash -e /var/folders/hm/dm88jd4j2f328jj96hglfbk000009c/T/hudson3825950836307624243.sh 
"gs" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" "-sOutputFile=/Users/Shared/Jenkins/Home/jobs/test/workspace/tmp/magick-QkcQLTEO-%08d" "-f/Users/Shared/Jenkins/Home/jobs/test/workspace/tmp/magick-b0tr61Ng" "-f/Users/Shared/Jenkins/Home/jobs/test/workspace/tmp/magick-scEOIbtN" 
convert: Postscript delegate failed `/Users/Shared/Jenkins/Home/jobs/test/workspace/example.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/668. 
convert: missing an image filename `/Users/Shared/Jenkins/Home/jobs/test/workspace/example_1.jpg' @ error/convert.c/ConvertImageCommand/3016. 

詹金斯v 1.496是运行在OS X 10.7.5和Java 1.6.0_37

+0

您是否尝试从jenkins用户或用户下的命令行执行脚本? –

+0

Jenkins用户 – suda

+2

请注意,Jenkins启动'sh' shell,而不是'bash' shell,因此在启动bash终端时将设置的任何环境变量都不会被设置。 'convert'是否需要设置这些变量? – Sagar

回答

1

正如Sagar建议,我检查了终端中设置的环境变量。 事实证明,导出PATH修复了这个问题(这是合乎逻辑的,因为GS和IM通过brew安装到/ usr/local而不在PATH中)。

相关问题