【问题标题】:execute shell step skipped completely in jenkins在詹金斯中完全跳过执行shell步骤
【发布时间】:2017-03-15 03:12:45
【问题描述】:

我似乎无法在 Jenkins 中运行构建执行 shell 步骤。我过去曾在 Windows 上与 Hudson 合作过,我能够毫无问题地创建 shell/批处理步骤,但我似乎在这里遗漏了一些东西。

这是一个全新的 jenkins 安装,我进入“添加构建步骤”、“执行 shell”并在命令中输入“echo hi”。我运行构建,当我查看控制台输出时,没有任何反应。

我也尝试过执行一个 test.sh 文件,它也只是回显你好。我已经在 linux 安装和 os X 安装的 Jenkins 服务器中对此进行了测试。

我在运行 shell 脚本的配置中缺少什么?

控制台输出显示完全跳过了 shell 脚本步骤

Started by user admin
Finished: SUCCESS

【问题讨论】:

  • 您能在此处添加控制台的输出吗?
  • 控制台输出除了基本信息外什么也没有显示。由用户管理员开始完成:成功
  • 你有哪个版本的 Jenkins?我可以证明的最后一个好版本是 1.447。如果你不使用那个,你可以试试它。另外,您能否在 linux 系统的“Execute Shell”上在echo hi 之前添加#!/bin/sh#!/bin/bash,看看是否可行。
  • 抱歉,之前没有看到回复。星期一回到办公室时,我会试试你的建议!

标签: jenkins


【解决方案1】:

看起来 Jenkins 无法重定向系统的输出。您使用的是什么版本的 Java?如果您使用的是 OpenJDK,可以尝试使用 Sun Java/Sun JDK 吗?

第一次尝试检查是否有任何东西正在执行:将以下内容添加到您的“执行 Shell”中

#!/bin/bash
echo "HELLO WORLD" > /tmp/testfile

运行它并检查您的 Linux 系统中是否有 /tmp/testfile,如果它包含 HELLO WORLD 文本,则表示您的脚本实际上正在执行。

您拥有哪个版本的 Jenkins?

我可以证明的最后一个好版本(我知道的最后一个至少对我们来说效果很好)是 1.447。如果你不使用那个,你可以尝试一下吗?

另外,您能否在 Linux 系统的“执行 Shell”上在 echo hi 之前添加 #!/bin/sh#!/bin/bash,看看是否可行。

另外,尝试使用source /path/to/script 运行脚本,看看是否可行。该脚本应包含 #!/bin/sh#!/bin/bash 作为第一行,只是为了看看这是否会有所不同。

注意:这些都不是必需的,但有助于获取有关正在发生的事情的更多信息。无法将所有这些都放入评论中。我会根据你对上述问题的回答更新我的答案,如果我什么都得不到,我会删除..

【讨论】:

  • 所以看起来这是一件愚蠢的事情,我在作业创建屏幕中选择了一个“多配置项目”,因此它不会执行任何 shell 脚本,直到我定义了配置矩阵。一旦我创建了一些配置,它就会在各自的配置工作区中运行 shell 脚本。
  • 大声笑,它通常是最小的东西。很高兴你解决了!
  • 在窗口系统中呢?
  • @SurendraJnawali 怎么样?您应该能够尝试相同的步骤,除了您的 shell,无论您使用的是哪个。
【解决方案2】:

把它放在这里以供后代使用。

我有一个配置了 Maven 的 Jenkins 项目,该项目运行 clean test 并在前面的步骤中执行了一个 shell。来自 Maven 的日志没有通过并且脚本没有执行。一旦我在 Maven 构建选项下取消选中 Build modules in parallel,我的日志和脚本就开始工作了。

【讨论】:

    【解决方案3】:

    确保它在 Jenkins 可以看到的位置,检查权限。

    【讨论】:

    • 我确实检查了权限,把它放在主工作区...我也只是做了 echo hi,这不是一个文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    相关资源
    最近更新 更多