2015-10-10 61 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