Read .txt file from workspace groovy script in Jen

2019-02-21 00:34发布

I am new to Jenkins and to groovy scripting, I want to read a .txt file which is located in the workspace of one of the jobs. I am trying to do this way:

myfile = Jenkins.instance.getJob('JobName').workspace.readFileFromWorkspace('file.txt');

But leads to the following error:

groovy.lang.MissingMethodException: No signature of method: hudson.FilePath.readFileFromWorkspace() is applicable for argument types: (java.lang.String) values: [file.txt]

2条回答
Lonely孤独者°
2楼-- · 2019-02-21 00:41

I was struggling to make it work for the pom modules for a file in the workspace, in the Extended Choice Parameter. Here is my solution with the printlns:

import groovy.util.XmlSlurper
import java.util.Map
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*    

try{
//get Jenkins instance
    def jenkins = Jenkins.instance
//get job Item
    def item = jenkins.getItemByFullName("The_JOB_NAME")
    println item
// get workspacePath for the job Item
    def workspacePath = jenkins.getWorkspaceFor (item)
    println workspacePath

    def file = new File(workspacePath.toString()+"\\pom.xml")
    def pomFile = new XmlSlurper().parse(file)
    def pomModules = pomFile.modules.children().join(",")
    return pomModules
} catch (Exception ex){
    println ex.message
}
查看更多
3楼-- · 2019-02-21 01:05

Try this:

file = new File("${Jenkins.instance.getJob('JobName').workspace}/file.txt").text
查看更多
登录 后发表回答