我刚刚开始使用Phing作为构建工具设置Jenkins。虽然我之前使用过Jenkins,但我是Phing的新手。
我在Jenkins中有一个项目设置,它有一个Mercurial Repository设置和Phing Build步骤。 build.xml文件只是归档现有文件,删除它们并从存储库中复制新文件。
我从终端运行了phing,一切都按计划运行。但是,从Jenkins内部运行时,我在控制台输出中得到以下内容:
[workspace] $ /usr/local/pear/bin/phing -buildfile /Users/Shared/Jenkins/Home/jobs/Project/workspace/build.xml "-Dwebroot=/Volumes/Websites/Project/ -Dcheckoutroot=/Users/Shared/Jenkins/Home/jobs/Project/workspace -Drevision=5" -logger phing.listener.DefaultLogger
/usr/local/pear/bin/phing: fork: Resource temporarily unavailable
Build step 'Invoke Phing targets' marked build as failure
我的第一个想法是它与权限相关,但是我已经将Jenkins改为与我手动运行Phing的用户一样运行,但它仍然遇到了同样的问题。
是否有人对可能导致问题的原因有任何想法? 在与Cygwin无关的任何地方,我找不到任何与此错误有关的内容......
系统在OS X 10.7.5上运行,使用Jenkins 1.518和Phing 2.5.1
build.xml文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Project" default="dist">
<property name="revision" value="old" />
<property name="webroot" value="/Volumes/Websites/${phing.project.name}" />
<property name="checkoutroot" value="./" />
<target name="clean">
<echo msg="Backing up old site to ${phing.project.name}-${revision}..." />
<tar destfile="${webroot}/../${phing.project.name}-${revision}.tar.gz" basedir="${webroot}" compression="gzip" />
<echo msg="Deleting site from ${webroot}..." />
<delete>
<fileset dir="${webroot}" />
</delete>
</target>
<target name="dist" depends="clean">
<echo msg="Copying files to website at ${webroot}..." />
<copy todir="${webroot}">
<fileset dir="${checkoutroot}/Website">
<exclude name="**/.hg/**" />
</fileset>
</copy>
</target>
</project>
答案 0 :(得分:0)
我设法通过删除Jenkins中Phing配置部分中的所有路径详细信息来解决此问题。
对于我没有这些细节的原因,这对我来说绝对没有意义,因为我肯定只有一个Phing安装,所以它并不像是错误的那样。
但是,如果没有在Jenkins项目配置的Phing部分中指定任何内容,那么它会选择默认路径,默认构建目标等等。现在这样可以完美运行!