【问题标题】:Configuring a Hudson job to run on both Windows and Linux based OS's将 Hudson 作业配置为在基于 Windows 和 Linux 的操作系统上运行
【发布时间】:2011-07-15 18:22:34
【问题描述】:

我是 Hudson 的新手,我正在准备一项工作,将在多个平台上构建 C++ 源代码的 HG 存储库。 (Linux、Solaris、FreeBSD 和 Windows)

除了 Windows 之外,我的所有平台都可以正常工作,这围绕着这样一个事实,即我让 Hudson 作业通过 shell 执行 Python 脚本。 (即在“Build”部分下的 Hudson 作业配置中,我有“Execute Shell”=>“Command”=>python ./build_project.py

[win32] $ /bin/sh -xe C:\Users\build\AppData\Local\Temp\hudson3063181706777016948.sh
The system cannot find the path specified
FATAL: command execution failed

除了创建另一个作业来运行 Windows 构建之外,有没有办法让 Hudson 将 build_project 脚本作为 Unix 类型操作系统的 Shell 执行,并在目标是 Windows 从属设备时将其作为批处理文件执行?

【问题讨论】:

    标签: build build-process hudson build-automation


    【解决方案1】:

    另一种选择是使用 python 插件:http://wiki.hudson-ci.org/display/HUDSON/Python+Plugin

    您只需指定要执行的 python 文件。

    【讨论】:

    • 谢谢。这是我正在寻找的解决方案类型。我想我可以安装 Cygwin 并让它工作,但这允许我做我需要的事情,而无需添加额外的软件,因为我们在所有构建机器上都为 Mercurial 安装了 Python。
    【解决方案2】:

    我建议在您的 Windows 机器上安装 Cygwin,以便它们可以运行 UNIX shell 脚本。这就是我们所做的,而且效果很好。

    【讨论】:

      【解决方案3】:

      在您的工作区中创建一个 ant 脚本 build.xml,其中包含:

      <target name="default">
          <exec executable="python">
              <arg value="./build_project.py"/>
          </exec>
      </target>
      

      然后在 Hudson 中,代替“Execute Shell”执行“Invoke Ant”。将目标设为“默认”(无引号)。您必须在 Hudson->Manage Hudson->Configure System->Ant 部分中安装/指向 ant(不在工作中,在 Hudson 主配置中),但它应该可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-10
        • 2023-03-07
        • 2020-05-19
        • 2013-11-24
        • 1970-01-01
        • 2020-05-27
        相关资源
        最近更新 更多