使用 Groovy 脚本访问当前 Jenkins 构建

2023-12-26

我创建了一个 Groovy 脚本,用于System Groovy ScriptJenkins 作业中需要访问当前作业的当前版本的步骤。

使用 Hudson.model 时需要当前版本Cause.UpstreamCause将我当前作业的当前版本链接到我正在安排的依赖作业。

由于代码更简洁:

my-job-step.groovy:

def scheduleDependentJob(jobName) {
  def fooParam = new StringParameterValue('foo', 'bar');
  def paramsAction = new ParametersAction(fooParam)

  println "Scheduling dependent job"
  def currentJob = ???
  def cause = new Cause.UpstreamCause(currentBuild)
  def causeAction = new hudson.model.CauseAction(cause)
  instance.queue.schedule(job, 0, causeAction, paramsAction)
}

The CauseAction构造函数(见http://javadoc.jenkins-ci.org/hudson/model/Cause.UpstreamCause.html http://javadoc.jenkins-ci.org/hudson/model/Cause.UpstreamCause.html)需要一个Run对象,当前构建对象应该是其实例。我只是找不到一种好方法来在 Groovy 脚本中构建当前正在运行的作业。


如果您在 Jenkins 工作中使用Groovy 插件 https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin,然后在里面Execute system Groovy script步骤该插件已经允许您访问一些预定义的变量:

build
    The current AbstractBuild.
launcher
    A Launcher.
listener
    A BuildListener.
out
    A PrintStream (listener.logger).

例如:

println build.getClass()

Outputs:

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

使用 Groovy 脚本访问当前 Jenkins 构建 的相关文章

  • groovy 无法解析 kotlin 类

    由于我无法解决我遇到的问题kotlin 我决定回到groovy为了实现该插件 但是我遇到了这个问题 我有这样的项目结构 为了不重写所有类 我决定重用中实现的类kotlin 然而我的课FileProcessingCoreGroovy Down
  • BitBucket+Jenkins:仅在特定分支更改时触发构建

    以下是该问题的据称解决方案 尽管它看起来确实是一种解决方法 而不是最终的解决方案 有没有一种方法 通过作业配置或 bitbucket 挂钩配置 我可以将作业设置为仅在推送到特定分支时运行构建 是否可以仅从一个特定分支触发 Jenkins h
  • Jenkins 多分支管道 - 在分支中配置属性?

    我们已经使用 Jenkins 多分支管道插件成功设置了构建管道 该插件在大多数情况下都运行良好 但是我们遇到了一个困扰我们的问题 Jenkinsfile包含一组属性 这些属性也显示在 UI 中 但如何为各个分支设置默认值 这就是我们的属性定
  • Jenkins - Xcode 构建工作协同设计失败

    下面是我的构建脚本 不使用 xcodebuild 插件 构建步骤工程 我使用所需的证书和私钥创建了一个单独的钥匙串 它们在钥匙串访问中可见 脚本中的钥匙串命令不会失败 安全列表钥匙串将这些显示为有效的钥匙串 它的表现就像解锁命令并未真正成功
  • 访问先前 Jenkins 构建中失败的阶段

    我编写了一个 Jenkinsfile 脚本 它获取当前 Github 提交中的文档是否已更新或代码是否已更新 并相应地启动所有阶段 如果仅更新文档 我不会再次运行代码测试阶段 所以现在如果之前的构建失败并且现在在当前的 Git 提交中仅更新
  • 可以混合使用 JVM 语言吗?即:Groovy 和 Clojure

    我知道你可以轻松地混合groovy java clojure java 无论什么JvmLang java 这是否也意味着我也可以让 clojure 和 groovy 代码进行交互 如果我使用 Grails 或 jRoR 我也可以在该环境中使
  • 使用多分支管道触发詹金斯构建标签创建

    我有一个舞台我的詹金斯文件 https github com ryandawsonuk activiti build blob 5d60df0b0e1410f901c64313d90e7aa03054c1df Jenkinsfile L79
  • 使用 Ruby 验证 Jenkins 插件表单

    我正在用 Ruby 开发一个 Jenkins 插件 您应该能够配置连接到服务器的每个节点 以便在该节点失去与主服务器的连接时将电子邮件发送到指定的地址 EmailNodeProperty添加一个字段来输入电子邮件地址 Save an ema
  • SSHKit::Runner::ExecuteError:以 root@co 身份执行时出现异常:Jenkins Job 的 shell 脚本中的用户 root@ 身份验证失败

    我正在尝试从 Jenkins Job 运行 cap 部署命令 它不断抛出以下错误 我也在部署服务器中添加了 ssh 密钥 我能够从配置 Jenkins 的服务器成功部署 但是当我运行该作业时 会引发身份验证错误 这对我来说真的很重要 有人可
  • 如何从 Jenkins 管道中的函数返回“allOf”的值

    我们有一个 Jenkins 管道设置 使用 Jenkinsfile 来定义不同构建需要做什么 在我们的很多阶段 当我们要发布版本时 我们需要完成一些工作 但如果不打算发布版本 则可以跳过这些工作 目前我们有这样的代码 when allOf
  • Groovy 和 Groovy++,它们有什么不同吗?

    我最近知道groovy 已经发布了 Groovy和Groovy 的主要区别是什么 来自 groovy 页面http code google com p groovypptest http code google com p groovypp
  • 如何将任务添加到 gradle 中的主要“构建”任务

    当我尝试使用以下代码将任务添加到主构建任务时 rootProject tasks getByName build dependsOn mytask 当我跑步时它抱怨gradle w build输出 Where Build file line
  • Apache 反向代理的基本身份验证问题

    我想为在 Ubuntu 服务器 12 04 1 上运行的 Apache 反向代理站点添加基本身份验证 网络应用程序是Jenkins http jenkins ci org运行在 Java EE 容器上 我在中添加了以下配置httpd con
  • 使用“评估”功能。为什么它不起作用?

    这段代码 evaluate def test println Test is successful test 结果异常 致命 没有方法签名 script1409644336796288198097 test 适用于参数类型 值 可能的解决方
  • Jenkins:在管道 Jenkins 文件内执行 AWS CLI 命令

    您知道如何在 aws 中执行 AWS CLI 命令吗 Jenkinsfile为了建立管道 我没有找到任何插件 首先 您需要在服务器上安装 aws cli 并确保 jenkins 用户有权运行它 或者在创建 EC2 实例时简单地使用 Amaz
  • 让 gradle 执行 JUnit 测试(Android 应用程序、Android Studio)

    我目前正在开发一个 Android 应用程序 最近从 Eclipse 切换到 Android Studio 不是我的想法 不过 我想配置 jenkins 服务器来定期运行 JUnit 测试和其他测试 为了实现这一点 我尝试配置一个 grad
  • 更改 Jenkins 云构建的 gradle 本地存储库缓存位置

    我需要更改存储库下载的保存位置 我无法使用用户主目录 因为我的构建是在云服务上运行的 该服务不保留此内容 这导致我的依赖项被一遍又一遍地下载 并消耗了大量的云存储时间 我正在使用 gradle 1 0 里程碑 5 我的构建文件具有以下存储库
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • 如何在 WebStorm 中安装 Groovy 插件?

    我正在使用 WebStorm 进行开发 我想要为 Jenkins Groovy 管道提供语法突出显示 使用IntelliJ IDEA来编辑Jenkinsfile是可以的 但是在IDE之间来回切换显然很不方便 我可以安装吗Groovy 插件
  • 如何使用 jenkins 声明性管道新语法测试 sh 脚本返回状态

    使用新的 jenkins 声明性管道语法 我想测试 sh 脚本执行的返回状态 是否可以不使用脚本步骤 脚本管道 工作 stage Check url node timeout 15 waitUntil sleep 20 def r sh s

随机推荐

  • 如何更改 JSON 中字段的顺序

    Scenario 考虑我有一个 JSON 文档 如下所示 name David age 78 NoOfVisits 4 问题 我想更改文档中字段的顺序 顺序 比如说我想要age NoOfVisits然后最后name 截至目前 我将值存储在临
  • 业务对象/数据库访问层的体系结构

    由于各种原因 我们正在编写一个新的业务对象 数据存储库 该层的要求之一是将业务规则的逻辑与实际的数据存储层分开 可以有多个数据存储层实现对同一对象的访问 例如 实现大多数对象的主 数据库 数据存储源 以及实现用户对象的另一个 ldap 源
  • Reinterpret_cast 与 C 风格强制转换

    我听到了reinterpret cast是实现定义的 但我不知道这真正意味着什么 你能提供一个例子来说明它是如何出错的吗 如果出错了 使用 C 风格的强制转换是否更好 C型演员阵容也好不到哪儿去 它只是按顺序尝试各种 C 风格的转换 直到找
  • 在 C# 中的其他类的列表中添加和删除项目

    我正在使用表单在 C 中设置一个基本的购物车 我已将一些产品加载到 List 中 打开时可以显示这些产品 但我的问题是 当我从 List 添加或删除项目并退出菜单并再次打开商店时 会显示原始列表 我不确定如何在商店中添加或删除它 它也显示在
  • 查找特定 JDK 版本的“示例和演示”[已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Oracle 发布了 Java SE 开发套件 8u20 演示和示例下载 最新发布 http www o
  • 将 Angular2 组件转换为 ES6 语法需要什么?

    index js 这是我的切入点 import as stylesheet from assets styles app scss import jQuery from node modules jquery dist jquery imp
  • 带有模板容器的模板类

    如何声明具有不同容器作为模板参数的模板类 适配器 例如 我需要声明类 template
  • Delphi 2009 在 RAD Studio 命令提示符中使用 MSBuild F1026 文件未找到

    在过去的几天里 我一直在努力让 MSBuild 在构建机器上成功构建我的 dproj 文件 首先 我需要来自开发人员计算机的 EnvOptions proj 文件 这让我清除了丢失的 system pas 文件 但现在我收到了缺少 dcu
  • Matplotlib 交互式事件循环

    Matplotlib 如何为 Qt 等后端库设置事件循环 同时仍然允许通过 python REPL 进行交互 至少对于 Qt 来说 主事件循环必须在主线程中运行 但这就是 REPL 所在的位置 对吧 所以我正在努力了解两者如何共存 我当前的
  • 如何获取Keras中预测错误数据的索引?

    我正在做情感分析并使用 keras 来预测电影评论的正面 负面 我想知道的是原始数据 这些数据是我的模型错误预测的 我只能从模型中获得准确性和损失 但我想获得模型预测错误的文本子集 怎么做 import pandas as pd from
  • Jquery datepicker 2个月显示

    我正在使用 jquery ui 日期选择器来显示多个月份 弹出窗口将这些月份显示在其他月份的下方 有没有办法让下个月显示在右侧 我现在正在 datePicker 中处理这个 所以 根据 jQuery datePicker 文档 number
  • 如何从 Jinja2 模板中获取所有未定义的变量?

    我试图从 Jinja2 模板中获取所有未定义的变量 假设我有一个如下所示的模板 tmpstr for row in csv sample row field1 stuff row field2 morestuff row field3 en
  • 如何使用 maven-scala 插件解决依赖项的“错误:错误的符号引用”?

    我正在使用 Scala 和 Slick 构建一个小型数据库查询实用程序 并使用 Maven 作为构建和打包工具 我的代码编译时没有任何语法错误 但构建失败并出现以下错误 INFO maven scala plugin 2 15 0 comp
  • 如何发送和接收广播消息

    我正在尝试在选项卡内的两个活动之间传递数据 我正在尝试使用sendBroadcast 设置断点后我永远不会到达onReceive 显现
  • JavaScript 错误 - 无法调用 null 的方法“appendChild”

    我是 Javascript 以及一般编程 的新手 一直在尝试基本掌握 DOM 的使用 如果这是一个非常基本的错误 我深表歉意 但我环顾四周 找不到答案 我正在尝试使用appendChild方法将标题和一些段落文本添加到下面非常基本的HTML
  • java.lang.IllegalArgumentException:观察者为空

    我的一个应用程序的用户报告了此错误 我对这意味着什么以及如何解决它感到困惑 经过一番谷歌搜索后 仍然没有运气 有人以前见过这个或者知道如何解决它吗 java lang IllegalArgumentException The observe
  • VS 2019 的终端在哪里?

    我正在运行 16 3 4 所以我认为它应该已经包含早期预览版本的更新 这里提到 https devblogs microsoft com visualstudio say hello to the new visual studio ter
  • xreadlines 和 for 循环文件之间的区别

    在 Python 2 7 中有一个文件对象 f open my file r for 循环文件 最常见的方式 和使用xreadlines 功能 for line in f Do something with line and for lin
  • OpenMP:将所有线程分为不同的组

    我想将所有线程分为 2 个不同的组 因为我有两个并行任务要异步运行 例如 如果总共有 8 个线程可用 我希望有 6 个线程专用于任务 1 另外 2 个线程专用于任务 2 如何使用 OpenMP 实现这一目标 这是一份工作OpenMP 嵌套并
  • 使用 Groovy 脚本访问当前 Jenkins 构建

    我创建了一个 Groovy 脚本 用于System Groovy ScriptJenkins 作业中需要访问当前作业的当前版本的步骤 使用 Hudson model 时需要当前版本Cause UpstreamCause将我当前作业的当前版本