当前位置: 首页 > 知识库问答 >
问题:

使用hudson的管道插件在内联管道脚本中获取当前时间戳

宫铭
2023-03-14

我想使用 hudson 的管道插件在内联管道脚本中获取当前时间戳。用于设置生成显示名称。

使用的内联groovy脚本:

def jobName = env.JOB_NAME + "_" + new Date()
currentBuild.displayName = "$jobName"
node {
   echo "job name $jobName"
}

控制台上的错误:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: 
  Scripts not permitted to use new java.util.Date

共有3个答案

魏岳
2023-03-14

根据您认为最直观的API,有很多方法可以节省时间:

> < li>

新日期()已被添加到< code >脚本安全插件白名单中

RunWrapperAPI通过使用电流构建全局变量

  1. final long startTime=currentBuild。startTimeInMillislongbuild启动时的值(毫秒)
  2. <code>最终长scheduledTime=currentBuild。timeInMillis:longbuild计划时的值(毫秒)
  3. 最终长buildDuration=currentBuild。持续时间:构建所用的毫秒
  4. 最终字符串buildDurationAsStrong=currentBuild。durationString</code>:<code>duration</code>作为<code>字符串</code>

使用白名单的java.timeAPI,例如LocalDateTime

import java.time.LocalDateTime
final LocalDateTime currentTime = LocalDateTime.now()
// do stuff with LocalDateTime

当然,在脚本中掏出并使用返回值

final String currentTime = sh(returnStdout: true, script: 'date +%Y-%m-%d').trim()

我相信还有其他方法。

满言
2023-03-14

只需格式化Date对象:

stage('Foo') {
  steps {
    script {
        def now = new Date()
        println now.format("yyMMdd.HHmm", TimeZone.getTimeZone('UTC'))
    }
  } 
}
隆芷阳
2023-03-14

你也可以使用这个,我需要这个在MS so:

echo "TimeStamp: ${currentBuild.startTimeInMillis}"

echo "TimeStamp: ${Util.getTimeSpanString(System.currentTimeMillis())}"
 类似资料:
  • 我正在尝试使用groovy构建脚本将构建管道迁移到“管道插件”。 我的管道通常是: 测试(梯度) 我想在我的jenkins构建脚本中使用像version/group等的gradle变量来发布到artiFactory中的正确文件夹中。这是artiFactory插件过去会为我处理的事情。如何实现? 对于单个gradle项目,我使用如下内容:

  • 传递参数 链接管道 我们可以将多个管道连接在一起,以便在一个表达式中使用多个管道。

  • 我正在使用位于git存储库中的Jenkins文件。我已经使用来自scm的管道脚本配置了新作业,该脚本指向我的JenkinsFile。我试图在我的Jenkins file pipeline脚本中使用git模块,以便从我的git repo中提取我的数据,而不需要配置prestatic变量,并且仅仅使用在我的作业中已经配置的scm pipeline脚本下的存储库URL变量。在我的Jenkins管道脚本中

  • 即。在货币管道上完成一些额外的格式化。为此,我想在自定义管道的组件代码中使用现有管道。

  • 问题内容: 我正在尝试使用groovy构建脚本将构建管道迁移到“ Pipeline插件”。 我的管道通常是: 测试(等级) IntegrationTest(等级) 构建(渐变) 发布(人工工厂) 我想在我的jenkins构建脚本中使用gradle变量,例如version / group等,以发布到工件中的正确文件夹。过去,人工插件会为我解决。如何做到这一点? 对于单个gradle项目,我使用如下代

  • 问题内容: 我想在脚本化管道中使用选项。 可能吗 ? 问题答案: 您可以从这里尝试答案