我刚刚开始使用 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>