diff --git a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java index fa62789e..ee304786 100644 --- a/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java +++ b/src/main/java/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration.java @@ -108,10 +108,6 @@ public RemoteBuildConfiguration(String remoteJenkinsName, boolean shouldNotFailB this.loadParamsFromFile = true; this.parameterFile = loadParamsFromFile.getString("parameterFile"); this.parameters = ""; - //manually add a leading-slash if we don't have one - if( this.parameterFile.charAt(0) != '/' ){ - this.parameterFile = "/" + this.parameterFile; - } } else { this.loadParamsFromFile = false; this.parameters = parameters; @@ -159,14 +155,25 @@ public RemoteBuildConfiguration(String remoteJenkinsName, boolean shouldNotFailB * @param build * @return List of build parameters */ - private List loadExternalParameterFile(AbstractBuild build) { + private List loadExternalParameterFile(AbstractBuild build, BuildListener listener) { FilePath workspace = build.getWorkspace(); BufferedReader br = null; List ParameterList = new ArrayList(); try { + // If parameterFile is token, we need convert it. + // Doesn't modify this.parameterFile because that will modify job configuration string concurrently + String tokenizeParameterFile = replaceToken(build, listener, this.parameterFile); + if( tokenizeParameterFile.charAt(0) != '/' && !tokenizeParameterFile.startsWith("\\")){ + tokenizeParameterFile = "/" + tokenizeParameterFile; + } + + String filePath = workspace + tokenizeParameterFile; + // If file path is NFS, we should use original path + if(tokenizeParameterFile.startsWith("\\")){ + filePath = tokenizeParameterFile; + } - String filePath = workspace + this.getParameterFile(); String sCurrentLine; String fileContent = ""; @@ -474,7 +481,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListener lis List cleanedParams = null; if (this.getLoadParamsFromFile()) { - cleanedParams = loadExternalParameterFile(build); + cleanedParams = loadExternalParameterFile(build, listener); } else { // tokenize all variables and encode all variables, then build the fully-qualified trigger URL cleanedParams = getCleanedParameters(); diff --git a/src/main/resources/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration/config.jelly b/src/main/resources/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration/config.jelly index bd792469..4193e370 100644 --- a/src/main/resources/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration/config.jelly +++ b/src/main/resources/org/jenkinsci/plugins/ParameterizedRemoteTrigger/RemoteBuildConfiguration/config.jelly @@ -46,7 +46,7 @@ - +