Linux 如何进入哈德逊&x27;s";控制台输出;?
我在Hudson build系统下运行了一个build bash脚本,它编写自己的日志文件。但是,Hudson捕获它执行的构建脚本的所有stdout和stderr,并将其显示为构建的“控制台输出”。此外,此输出保存在生成历史记录中 如何从脚本本身访问此“控制台输出”?我想1)将其与工件一起保存为日志;2) 将其附加到通知电子邮件。谢谢Linux 如何进入哈德逊&x27;s";控制台输出;?,linux,shell,continuous-integration,hudson,build-automation,Linux,Shell,Continuous Integration,Hudson,Build Automation,我在Hudson build系统下运行了一个build bash脚本,它编写自己的日志文件。但是,Hudson捕获它执行的构建脚本的所有stdout和stderr,并将其显示为构建的“控制台输出”。此外,此输出保存在生成历史记录中 如何从脚本本身访问此“控制台输出”?我想1)将其与工件一起保存为日志;2) 将其附加到通知电子邮件。谢谢 它与工件一起保存(构建的顶级目录中的log文件,即jobs/jobname/builds/buildid/log) 它会自动添加到hudson发送的电子邮件中,尽
log
文件,即jobs/
jobname/builds/
buildid/log
)#!/bin/sh
make this
make that
致:
不幸的是,我不知道如何在tee
中强制行缓冲,因此实时日志打印在哈德逊(Hudson)中工作(至少我的cygwin版本没有提到-u
选项)要在tee中强制执行行缓冲,只需使用
unbuffer{command}
启动程序,它是expect
包的一部分。unbuffer
的另一个替代方法是使用stdbuf-eL-oL{command}
谢谢!这正是我们现在所做的(使用tee
),但我想从框架本身获得它。简化的另一个好处是,Hudson的日志将包含脚本本身的错误。由于一些我不清楚的原因,我们并没有使用哈德逊的任何功能,比如电子邮件通知——这一切都是从计算机上手动完成的script@davka:自从我写了答案,我开始使用Groovy和Groovy后期构建插件,因此,我添加了如何从这些文件访问日志的说明。环境变量:BUILD_URL可以找到此生成结果的URL(例如)
#!/bin/bash
{
make this
make that
} 2>&1 | tee output
# Now the output is in file 'output' while Hudson did see it.