当前位置: 首页 > 面试题库 >

Jenkins Groovy脚本

禹昊穹
2023-03-14
问题内容

我是Jenkins中使用的Groovy脚本的新手。我的问题是,我们如何根据作业名称和内部版本号获取作业的时间戳?

示例 :我想获取“ MyDeployJob”(JobName)的时间戳,并获取BuildNumber-105的时间戳。

我尝试使用方法getBuildByBuildNumber()方法,但无法正常工作。另外,我发现BUILD_ID环境变量具有时间戳,但是我无法弄清楚如何使用Groovy
Script获取细节。请帮助。

提前致谢。


问题答案:

下面是在Jenkins控制台中使用Groovy如何获取Job,按Job编号构建以及与时间相关的所有示例:

//job by name
def job = Jenkins.instance.getItem("job name")

//build number
def build = job.getBuildByNumber(44)

println "getTimestampString: " + build.getTimestampString()
println "getTimestampString2: " + build.getTimestampString2()
println "getStartTimeInMillis: " + build.getStartTimeInMillis()
println "getTime: " + build.getTime()
println "getTimeInMillis: " + build.getTimeInMillis()
println "getTimestamp: " + build.getTimestamp()

//end time
println "End time: " + new Date(((long)build.getStartTimeInMillis() + build.duration))

输出:

getTimestampString: 11 days
getTimestampString2: 2019-02-18T09:04:19Z
getStartTimeInMillis: 1550480659394
getTime: Mon Feb 18 09:04:19 UTC 2019
getTimeInMillis: 1550480659392
getTimestamp: java.util.GregorianCalendar[time=1550480659392,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Etc/UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=1,WEEK_OF_YEAR=8,WEEK_OF_MONTH=4,DAY_OF_MONTH=18,DAY_OF_YEAR=49,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=4,SECOND=19,MILLISECOND=392,ZONE_OFFSET=0,DST_OFFSET=0]
End time: Mon Feb 18 09:11:17 UTC 2019

要在管道中访问它们,可以使用currentBuild全局变量参考:

echo currentBuild.durationString

您可以在http:// yourjenkinsurl / pipeline-syntax /
globals
中的某些字段下找到所有详细信息:

timeInMillis :自计划构建开始以来的时间
startTimeInMillis :自构建开始开始以来的时间
运行持续时间 :以毫秒为单位的构建
持续时间durationString :构建 持续时间 的人类可读表示形式



 类似资料:
  • 脚本概述 Unity 采用了标准的 Mono 运行时来提供脚本功能,并扩展了自主的实践和技术,来支持脚本访问引擎。本节介绍如何通过脚本控制在 Unity 编辑器中创建的对象,并详细介绍 Unity 游戏功能和 Mono 运行时之间的关系。 译注:Mono 是 ECMA 通用语言基础架构(ECMA Common Language Infrastructure,CLI) 的实现。关于 Mono 是如何

  • 当调用一个脚本时,MATLAB会简单地执行文件中找到的命令。脚本可以运行工作空间中存在的数据,或者脚本创建新数据来运行。虽然脚本不能返回输出变量,但是所有创建的变量将保留在工作空间中,供给后面的计算使用。另外,脚本能提供图形输出,就像使用plot函数一样。 例如,创建一个叫magicrank.m的文件,它包含有MATLAB的命令。 % Investigate the rank of magic s

  • IServer.ScriptLoad(Async)、 IServer.ScriptExists(Async)、IServer.ScriptFlush(Async)、 IDatabase.ScriptEvaluate 和 IDatabaseAsync.ScriptEvaluateAsync 这些方法为基本的 Lua脚本 提供了支持。 这些方法暴露了向Redis提交和执行Lua脚本所需的基本命令。 通

  • 脚本 脚本是所有游戏的基本要素。即使是最简单的游戏也会用到脚本,例如,在游戏中响应玩家的输入,并分派符合预期的事件。除此之外,脚本可以用来创建图形效果、控制对象的物理行为,甚至是为游戏中人物实现一套自定义 AI 系统。 编写脚本是一门技能,需要投入一定的时间和精力去学习。但本节的目的不是教你如何从头开始编写脚本,而是解释 Unity 脚本的主要概念。 相关教程:脚本 有关故障排除、技巧和窍门的内容

  • 简介 每个脚本都是纯文本文件, 其中包含了可由程序 (AutoHotkey.exe) 执行的文本行. 脚本中还可以包含 热键 和 热字串 或者甚至完全由它们组成. 不过, 在不包含热键和热字串时, 脚本会在启动后从上往下按顺序执行其中的命令. 程序会把脚本逐行加载到内存中, 每行最多可以包含 16,383 个字符. 在加载过程中, 脚本会被 优化 和检查. 将列出所有的语法错误, 更正它们后脚本才

  • 使用脚本 运行脚本时,计算机会执行一系列操作。这些操作可能只涉及 Illustrator,也可能涉及其他应用程序,如文字处理、电子表格和数据库管理程序。 Illustrator 支持多脚本环境(包括 Microsoft Visual Basic、 AppleScript、 JavaScript 和 ExtendScript)。您可以使用 Illustrator 附带的标准脚本,还可创建自己的脚本并

  • 在大多数情况下,SystemTap脚本是每个SystemTap会话的基石。SystemTap脚本决定了需要收集的信息类型,也决定了对收集到的信息的处理方式。 在本章的开头曾经提到过,SystemTap脚本由两部分组成:事件和处理程序。一旦SystemTap会话准备就绪,SystemTap会监控操作系统中特定的事件,并在事件发生的时候触发对应的处理程序。 一个事件和它对应的处理程序合称探针。一个Sy

  • 我有这样的设置: 所有.飞镖只是导入脚本1.飞镖和脚本2.dart并调用它们的主要。目标是在细节下有一堆可以单独运行的脚本。此外,我想要一个单独的 all.dart 脚本,可以一次运行所有脚本。这将使调试单个脚本更简单,但仍允许所有脚本运行。 all.dart 脚本1.飞镖 脚本2.dart 所以,这是工作,我看到运行时预期的打印语句all.dart但我有两个问题。 首先,我必须在详细信息下软链接