gpt4 book ai didi

linux - 如何访问 Hudson 的 "console output"?

转载 作者:IT王子 更新时间:2023-10-29 01:06:31 25 4
gpt4 key购买 nike

我有一个在 Hudson 构建系统下运行的构建 bash 脚本,它会写入自己的日志文件。但是,Hudson 会捕获它执行的构建脚本的所有标准输出和标准错误,并将其显示为构建的“控制台输出”。此外,此输出保存在构建历史中。

我如何从脚本本身访问这个“控制台输出”?我想 1) 将它与工件一起保存为日志; 2) 将其附加到通知电子邮件中。谢谢

最佳答案

  1. 它与工件一起保存(构建目录顶层的 log 文件,即 jobs/jobname/builds/buildid/log).
  2. 它会自动添加到 hudson 发送的电子邮件中,但会从开头截断。

如果您需要在其他任何地方获取它,有两种选择:

  1. 您可能必须将脚本包装在一个 block 中,然后通过 tee 将其输出通过管道传输。所以你会转换:

    #!/bin/sh
    make this
    make that

    到:

    #!/bin/bash
    {
    make this
    make that
    } 2>&1 | tee output
    # Now the output is in file 'output' while Hudson did see it.

    不幸的是,我不确定如何在 tee 中强制行缓冲,以便实时日志打印在 Hudson 中工作(至少我的 cygwin 版本没有提到 -u 选项)。

  2. 您可以使用 Groovy plugin和/或 Groovy Postbuild plugin访问内部 API。构建步骤中的“系统”groovy 脚本和构建后的 groovy 脚本都可以访问 hudson.model.AbstractBuild 类型的构建对象(尽管方式略有不同)。从那里您可以使用 hudson.model.Run#getLog(int) 获取控制台的内容方法。

关于linux - 如何访问 Hudson 的 "console output"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6176148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com