nhiệm vụ của tôi là thu thập chi tiết nút và liệt kê chúng ở định dạng xác thực. Tôi cần phải ghi dữ liệu vào một tệp và lưu nó dưới dạng tệp csv và đính kèm nó dưới dạng các tạo phẩm. Nhưng tôi không thể tạo ra một tập tin sử dụng các kịch bản hấp dẫn trong Jenkins sử dụng plugin "Execute Hệ thống Groovy" như xây dựng bướcTrong công việc jenkins, tạo tệp bằng cách sử dụng hệ thống groovy trong không gian làm việc hiện tại
import jenkins.model.Jenkins
import hudson.model.User
import hudson.security.Permission
import hudson.EnvVars
EnvVars envVars = build.getEnvironment(listener);
filename = envVars.get('WORKSPACE') + "\\node_details.txt";
//filename = "${manager.build.workspace.remote}" + "\\node_details.txt"
targetFile = new File(filename);
println "attempting to create file: $targetFile"
if (targetFile.createNewFile()) {
println "Successfully created file $targetFile"
} else {
println "Failed to create file $targetFile"
}
print "Deleting ${targetFile.getAbsolutePath()} : "
println targetFile.delete()
Output thu được
attempting to create file: /home/jenkins/server-name/workspace/GET_NODE_DETAILS\node_details.txt
FATAL: No such file or directory
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:947)
at java_io_File$createNewFile.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at Script1.run(Script1.groovy:13)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:682)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:666)
at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:81)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772)
at hudson.model.Build$BuildExecution.build(Build.java:199)
at hudson.model.Build$BuildExecution.doRun(Build.java:160)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:535)
at hudson.model.Run.execute(Run.java:1732)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:234)
Một thời gian tôi thấy mọi người sử dụng "quản lý "đối tượng, làm thế nào tôi có thể truy cập vào nó? Alos bất kỳ ý tưởng nào về cách hoàn thành nhiệm vụ?
Một phiên bản đơn giản hơn của việc tạo đối tượng 'fp':' fp = new FilePath (build.workspace, 'node_details.txt') '. Việc kiểm tra có điều kiện là không cần thiết vì nó sẽ trừu tượng ra chủ quá. – ceilfors