【问题标题】:How to run a jenkins pre-build step that depends upon the jenkins slave OS?如何运行依赖于詹金斯从属操作系统的詹金斯预构建步骤?
【发布时间】:2012-12-06 23:34:24
【问题描述】:

在我的公司中,jenkins 配置有一台 Windows 从机和(即将推出)一台 Mac 从机。我们希望 Glassfish 域作为预构建步骤启动,域在构建后停止。

据我了解,我必须在 Windows 上运行“Windows 批处理文件预构建步骤”,在 Mac 上运行“shell 脚本预构建步骤”。

我可以将两者都放在预构建步骤中吗?或者我应该使用其他解决方案(如果是,是哪一个)?

【问题讨论】:

    标签: windows macos glassfish jenkins


    【解决方案1】:

    您不能将两者放在同一个工作中。当作业在 Mac slave 上运行时,“windows 批处理”将失败。当作业在 Windows slave 上运行时,“shell”将失败。

    为什么要同时添加两者?我知道您需要相关的预构建步骤,但是您为什么要尝试使该作业通用以在 Mac 或 Windows 上执行?通常运行 Mac slave 服务于特定目的(例如执行无法在 Window 上完成的 Xcode iOS 构建),并且您将该作业限制为仅在 Mac slave 上运行

    如果您确实需要能够运行 Windows 或 Mac shell,那么您应该看看 XShell 插件
    https://wiki.jenkins-ci.org/display/JENKINS/XShell+Plugin

    它允许您在 Windows shell 或 Mac shell 上执行“shell”步骤。该插件会负责调用正确的 shell,甚至会为您进行文件分隔符转换(它将使用 \ 用于 Windows,/ 用于 Linux/Mac shell),但您输入的命令必须是在两个 shell 中都可执行(即它不会为您将 rm 转换为 del)。插件页面提供了一个示例,您可以如何将命令“包装”到批处理和 shell 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多