1

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

1 回答 1

0

我已经设法通过删除 Jenkins 中 Phing 配置部分中的所有路径详细信息来解决此问题。

这对我来说完全没有意义,为什么它在没有这些细节的情况下工作,因为我肯定只安装了一个 Phing,所以它并不是说它选择了错误的东西。

但是,通过在 Jenkins 项目配置的 Phing 部分中未指定任何内容,它会选择默认路径、默认构建目标等,现在可以完美运行!

于 2013-08-07T16:09:33.340 回答