【发布时间】:2016-04-11 19:04:36
【问题描述】:
首先,我不是管理员,所以可能存在一些不正确的配置,导致了这个问题。我可以配置我有权配置的一项作业,仅此而已。
我正在执行 Windows 构建,使用 shell 脚本(使用 git-bash.exe)和 Windows 批处理文件的组合。唯一的 jenkins 构建脚本是一个 shell 脚本,仅包含:
#!c:\Program Files\Git\git-bash.exe
$WORKSPACE/builds/step1.sh |& tee $WORKSPACE/build_output.log
(我的 git-bash.exe 版本是 '4.3.42(5)-release',|& 速记似乎和2>&1 | 一样有效。)
该脚本 (step1.sh) 做了一些准备工作,然后通过依次调用批处理文件和 shell 脚本来启动构建过程。
构建成功,我得到了一个不错的 MSI 文件。 build_output.log 文件包含整个构建过程的完整日志,这也显示在从站的控制台中。
问题是,jenkins 无法捕获该控制台输出(即 build_output.log 的内容)。我看到的控制台输出是:
Started by user Jon
[EnvInject] - Loading node environment variables.
Building remotely on Win2k12r2_x64-build (Build VM (xx.xx.xx.xx) Windows Client) in workspace /f/git/project
[project] $ c:\Program Files\Git\git-bash.exe C:\Users\ADMINI~1\AppData\Local\Temp\1\hudson386179994146389782.sh
Notifying upstream projects of job completion
Finished: SUCCESS
我需要做什么才能在 jenkins 中捕获构建日志?我特别不想将我的 step1.sh 脚本放入 jenkins,因为我希望能够准确地重现构建团队(管理 jenkins 服务器)在构建失败时看到的内容。我们希望构建脚本在源代码控制下,所有人都可以使用并且所有人都可以运行(在他们自己的沙箱中)。我确实尝试过简单地从 jenkins 两行 shell 脚本中捕获构建日志,看看是否捕获了它......它没有。
【问题讨论】: