在Jenkinsfile中创建一个时间戳

在Jenkinsfile中创建一个时间戳

问题描述:

我正在努力创建一个我想要在Jenkins中使用脚本管道的格式的时间戳。下面是从管道我的代码:在Jenkinsfile中创建一个时间戳

def cal = Calendar.instance 
def dateFormat = 'YYYYMMDD-hhmmss' 
def timeZone = TimeZone.getTimeZone('CST') 
def timeStamp = cal.time​.format(dateFormat,timeZone)​ 
println "Timestamp is: ${timeStamp}" 
env.BUILD_TIMESTAMP = timeStamp 

当我通过詹金斯跑,我得到如下:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified field java.util.GregorianCalendar time​ 
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.unclassifiedField(SandboxInterceptor.java:387) 
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:371) 

我见过的与不同领域的类似问题提的在线,但增加的解决方法它到scriptapproval.xml(并重新启动詹金斯)似乎并没有工作。

任何人都有类似于我想要做的格式生成时间戳的方法?

+0

您是否在管理Jenkins下检查了进程内脚本审批页面?最后它和编写scriptapproval.xml一样,但是会给你一些关于应该批准什么的信息。 – babsaai

+0

@babsaai是的。我已经检查过了。没有什么可以批准的。 –

我想出了一个方法。我正在直接访问time字段。如果我将电话从cal.time更改为cal.getTime(),Jenkins的表现会更好。我将它整合为一行,但功能相同:

def timeStamp = Calendar.getInstance().getTime().format('YYYYMMdd-hhmmss',TimeZone.getTimeZone('CST')) 

感谢那些看过。