予期せぬエラーの状況
- Jenkinsで日付フォーマットを行ったのだが、以下のエラーが発生した。
BUILD_TIMESTAMP = new Date().format("yyyy-MM-dd_HH-mm-ss")
Started by user anonymous
[Pipeline] End of Pipeline
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method java.util.Date getDay
at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:175)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor$6.reject(SandboxInterceptor.java:261)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:381)
at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:284)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:288)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:7)
調べた結果
- 調べた所、日付を使用する場合は、Script Approval()を使用して承認する必要があるようです。 https://support.cloudbees.com/hc/en-us/articles/226504048-How-to-use-Date-with-Pipeline-
対応内容
- 上記、サイトに記載の通り、Approveする事で対応しました。 http://(Jenkinsホスト)/scriptApproval/ にて
signature : method java.util.Date getDayをApproveしました。