如何分析触发的 jenkins 作业的控制台输出数据?
How can I analyze console output data from a triggered jenkins job?
我有 2 份工作 'job1' 和 'job2'。我将从 'job1' 触发 'job2'。我需要获取触发 'job2' 的 'job1' 构建的控制台输出,并希望在 'job2'.
中处理它
您可以使用 Post Build Task 插件,然后您可以使用 wget 命令获取控制台输出:
wget -O console-output.log ${BUILD_URL}consoleOutput
困难的部分是找出触发下游作业 (job2
) 的上游作业 (job1
) 的内部版本号。一旦你有了它,你就可以访问控制台日志,例如通过 ${BUILD_URL}consoleOutput
,正如 ivoruJavaBoy 指出的那样。
下游构建如何确定它被触发的作业和构建号?这在 Jenkins 中出奇地困难:
解决方案 A("explicit" 方法):使用 Parameterized Trigger Plugin 到 "manually" 将内部版本号参数从 job1
传递到 job2
。除了管理开销之外,这种方法还有一个更大的缺点:job1
和 job2
将不再 运行 异步; 恰好 job2
中的 运行 个每个 运行 job1
中的运行。如果 job2
比 job1
慢,那么您需要规划资源以避免 job2
的构建堆积在队列中。
因此,某些解决方案 "B" 会更好,您可以从 Jenkins 的内部数据中提取 隐式 上游信息。您可以为此使用 Groovy;一个更简单的方法可能是在 job2
中使用 Job Exporter Plugin。该插件将在 job2
构建的工作区中创建一个 "properties"(文本)文件。该文件包含两个完全包含您要查找的信息的条目:
build.upstream.number Number of upstream job that triggered this job. Only filled if the build was triggered by an upstream project.
build.upstream.project Upstream project that triggered this job.
读取该文件,然后使用上面的 URL 中的信息读取控制台日志。
我有 2 份工作 'job1' 和 'job2'。我将从 'job1' 触发 'job2'。我需要获取触发 'job2' 的 'job1' 构建的控制台输出,并希望在 'job2'.
中处理它您可以使用 Post Build Task 插件,然后您可以使用 wget 命令获取控制台输出:
wget -O console-output.log ${BUILD_URL}consoleOutput
困难的部分是找出触发下游作业 (job2
) 的上游作业 (job1
) 的内部版本号。一旦你有了它,你就可以访问控制台日志,例如通过 ${BUILD_URL}consoleOutput
,正如 ivoruJavaBoy 指出的那样。
下游构建如何确定它被触发的作业和构建号?这在 Jenkins 中出奇地困难:
解决方案 A("explicit" 方法):使用 Parameterized Trigger Plugin 到 "manually" 将内部版本号参数从 job1
传递到 job2
。除了管理开销之外,这种方法还有一个更大的缺点:job1
和 job2
将不再 运行 异步; 恰好 job2
中的 运行 个每个 运行 job1
中的运行。如果 job2
比 job1
慢,那么您需要规划资源以避免 job2
的构建堆积在队列中。
因此,某些解决方案 "B" 会更好,您可以从 Jenkins 的内部数据中提取 隐式 上游信息。您可以为此使用 Groovy;一个更简单的方法可能是在 job2
中使用 Job Exporter Plugin。该插件将在 job2
构建的工作区中创建一个 "properties"(文本)文件。该文件包含两个完全包含您要查找的信息的条目:
build.upstream.number Number of upstream job that triggered this job. Only filled if the build was triggered by an upstream project.
build.upstream.project Upstream project that triggered this job.
读取该文件,然后使用上面的 URL 中的信息读取控制台日志。