如何通过詹金斯中的另一个管道作业构建并获取管道作业的构建日志

2023-12-19

我正在使用詹金斯管道。我可以通过命令构建并获取作业的构建日志:

def itemA = hudson.model.Hudson.instance.getItem(FOLDER).getJob(JOB_NAME_A)
hudson.model.Hudson.instance.queue.schedule(itemA)
def buildObj = itemA.getLastBuild()
def log = buildObj.log

没关系。但如果 JOB_NAME_A 是管道作业,我会收到错误:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:
unclassified method hudson.model.Queue schedule
org.jenkinsci.plugins.workflow.job.WorkflowJob    at
org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:113)
  at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
  at
org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
  at
com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16)
  at WorkflowScript.run(WorkflowScript:9)     at
___cps.transform___(Native Method)    at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
  at
com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
  at
com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
  at sun.reflect.GeneratedMethodAccessor424.invoke(Unknown Source)    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)     at
com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
  at
com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)
  at
com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
  at
com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)
  at
com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)
  at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)   at
com.cloudbees.groovy.cps.Next.step(Next.java:58)  at
com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)   at
org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
  at
org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
  at
org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
  at
org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
  at
org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
  at
org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:163)
  at
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:324)
  at
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:78)
  at
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236)
  at
org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:224)
  at
org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63)
  at java.util.concurrent.FutureTask.run(FutureTask.java:262)     at
hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
  at
jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
  at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  at java.util.concurrent.FutureTask.run(FutureTask.java:262)     at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:745) Finished: FAILURE

所以任何有过这种情况经历的人请帮助我修复这个错误。提前致谢。


Try the “建立工作”步骤,在管道语法中可用。 它会是这样的:

build job: 'JOB_NAME_A'. OR build 'JOB_NAME_A'

如果您有一些参数,您也可以在此处传递它们以及传播错误或等待作业完成的选项。(通过单击脚本区域下的管道语法链接来查看管道语法,了解完整的详细信息。)

要获取日志,您可以尝试以下操作:

some_var = build job: 'JOB_NAME_A'

log = Jenkins.getInstance().getItemByFullName(JOB_NAME_A).getBuildByNumber(some_var.getNumber()).logFile.text

some_var存储您开始的工作的信息。 这可能需要您的 Jenkins 管理员批准脚本,并且必须有一些更简洁的方法来获得此权限,但我对此不确定。 还没有尝试过文件夹内的作业,因此您可能需要对其进行一些调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过詹金斯中的另一个管道作业构建并获取管道作业的构建日志 的相关文章

随机推荐

  • 为什么这个阶乘算法不准确

    抱歉 我觉得问这个问题很愚蠢 并且准备好失去一半的分数 但为什么这个算法不起作用 它在一定程度上有效 数字 13 之后的阶乘有点偏离 例如 在数十万位及以后的数字并不完全匹配 include
  • 如何将RGB图像转换为CMYK图像?

    我想将 RGB 图像转换为 CMYK 这是我的代码 第一个问题是 当我将每个像素除以 255 时 该值接近于零 因此生成的图像近似为黑色 第二个问题是我不知道如何将单通道结果图像转换为 4 通道 当然 我不确定下面代码中制作的CMYK是否正
  • 在 VBA 中创建计数器

    我想知道是否有一种有效的方法可以使用 vba 创建计数机制Worksheet SelectionChange事件 我想计算特定单元格被选择的次数 如果选择该单元格 则变量将增加 1 否则不会对变量进行任何更改 Dim S As String
  • SSL 证书可以由多个证书颁发机构签名吗?

    如果能稍微分散一点信任就好了 这样我们在任何情况下都不必只依赖一个根 是否可以有一个证书由多个 CA 签署 No the X509证书格式 https www rfc editor org rfc rfc5280直到版本 3 的设计都只包含
  • 在 python @patch 装饰器中使用 self

    我正在尝试使用python的mock patch来用nose实现单元测试 class A def setUp self self b 8 contrived example patch object module class functio
  • 如何从 GC 存储中删除过时的 Firebase Cloud 函数容器?

    因此 最近 Firebase 开始对 Cloud Functions 容器存储收费 https firebase google com pricing https firebase google com pricing 没有免费使用 0 0
  • 标题如何“即时”修改页面标题

    我的标题在每一页上都被称为你可以想象的那样 这意味着在每个页面上我都有相同的标题 对 SEO 不利 是否有解决方法可以在 header php 之外设置页面标题 Thanks 做一个变量 page title 在包含标题之前设置它 并在标题
  • 取消引用:我错过了什么?

    我正在尝试获取Unquote http code google com p unquote 在 NET 4 中使用 xUnit 的库 但我根本没有运气让测试运行 因此 我将其分解为最简单的重现步骤 有人知道我可能会错过什么吗 创建一个新的
  • 如何按需重新加载Ext.tree.TreePanel?

    我想创建 Ext tree TreePanel 组件并定期从外部 URl 加载内容 所以我写了类似的东西 new Ext tree TreePanel root nodeType async text asdasd draggable fa
  • 使用 C# 运行带有关键字 GO 的 .sql 语句?

    我有以下内容 USE TESTDB CREATE FUNCTION dbo Function1 input VARCHAR 250 RETURNS VARCHAR 250 AS BEGIN do work here END SET ANSI
  • Android应用程序更新问题

    最近我一直面临着我的Android应用程序更新过程的问题 简而言之 应用程序能够检查是否已将更高版本代码的更新上传到服务器上 如果是 用户决定是否更新 加载该应用程序并开始标准安装后 final Intent intent new Inte
  • Azure WebJob 的 BlobInput 和 BlobOutput 类在哪里?

    我正在创建一个 Azure WebJob 控制台应用程序 用于调整上传到 blob 存储的图像大小 当遵循任何在线代码示例时 我无法引用和使用 BlobInput 和 BlobOutput 输入参数属性 我正在使用 NuGet 包 Micr
  • rcpp 检查列表是否有元素

    我的程序涉及聚类 除了数据集之外 用户还必须指定一些有关集群的详细信息 有两种方法可以解决此问题 指定集群数量或准备集群描述列表 args lt list dataset points K 5 args lt list dataset po
  • 如何将值应用于 Clojure 中的多个函数?

    基本上 我需要做类似的事情map 但我不需要将函数应用于集合中的所有元素 而是需要将相同 一组 值应用于函数集合 此操作有名称吗 这可能看起来是一个简单的问题 但我还没有找到在 Clojure 中执行此操作的惯用方法 对于我需要仅对每个函数
  • 如何在 Node js 中使用 FCM 向多个 Android 设备发送消息?

    我尝试将消息发送到单个设备 即单个注册 ID 它工作正常 但当尝试添加多个注册 ID 时 它会给出 InvalidServerResponse 错误 例如适用于 regTokens regId1 但不适用于 regTokens regId1
  • 使用ajax上传图片和表单提交

    我想使用Ajax将图像上传到服务器 但是出现问题 请有人帮助我这里出了什么问题 我可以使用提交表单提交图像 但不能使用ajax 这是我的代码 html div Select a photo to upload div
  • 如何在字符串中四舍五入到小数点后两位? [复制]

    这个问题在这里已经有答案了 可能的重复 c 如何将小数值四舍五入到小数点后两位 用于页面上的输出 https stackoverflow com questions 164926 c sharp how do i round a decim
  • JQuery 和 GWT 历史记录支持混淆

    我使用 JQuery 动态附加 GWT 脚本 然后使用 JQuery 历史记录跟踪历史记录 Problem 我的 GWT 模块生成History令牌 因为我的所有 GWT 模块都是 MVP 模块 和onClick s of MenuItem
  • 检测大型数据集中重复/相似的文本?

    我有一个包含数千条记录的大型数据库 每次用户发布他的信息时 我都需要知道是否已经有相同 相似的记录 有没有算法或开源实现来解决这个问题 我们用的是中文 相似 的意思是记录内容最相同 可能80 100 是相同的 每条记录不会太大 大约2k 6
  • 如何通过詹金斯中的另一个管道作业构建并获取管道作业的构建日志

    我正在使用詹金斯管道 我可以通过命令构建并获取作业的构建日志 def itemA hudson model Hudson instance getItem FOLDER getJob JOB NAME A hudson model Huds