在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
(并重新启动詹金斯)似乎并没有工作。
任何人都有类似于我想要做的格式生成时间戳的方法?
答
我想出了一个方法。我正在直接访问time
字段。如果我将电话从cal.time
更改为cal.getTime()
,Jenkins的表现会更好。我将它整合为一行,但功能相同:
def timeStamp = Calendar.getInstance().getTime().format('YYYYMMdd-hhmmss',TimeZone.getTimeZone('CST'))
感谢那些看过。
您是否在管理Jenkins下检查了进程内脚本审批页面?最后它和编写scriptapproval.xml一样,但是会给你一些关于应该批准什么的信息。 – babsaai
@babsaai是的。我已经检查过了。没有什么可以批准的。 –