diff --git a/pom.xml b/pom.xml
index 96b1b10341ba68bfcf29321fa7086e7691633307..53d726d88f4e35548c59db739592542a72ef1e74 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
io.jenkins.plugins
aliyun-oss-uploader
- 1.2-SNAPSHOT
+ 1.3-SNAPSHOT
hpi
diff --git a/src/main/java/org/inurl/jenkins/plugin/OSSPublisher.java b/src/main/java/org/inurl/jenkins/plugin/OSSPublisher.java
index 793a6e8686e5f347109e504200403806d1b67cb9..71b5740f3504baf7bd104598fe3ec49ba8f936e7 100644
--- a/src/main/java/org/inurl/jenkins/plugin/OSSPublisher.java
+++ b/src/main/java/org/inurl/jenkins/plugin/OSSPublisher.java
@@ -10,6 +10,7 @@ import com.aliyun.oss.OSSClient;
import hudson.Extension;
import hudson.FilePath;
import hudson.Launcher;
+import hudson.EnvVars;
import hudson.model.AbstractProject;
import hudson.model.Run;
import hudson.model.TaskListener;
@@ -89,17 +90,23 @@ public class OSSPublisher extends Publisher implements SimpleBuildStep {
public void perform(@Nonnull Run, ?> run, @Nonnull FilePath workspace, @Nonnull Launcher launcher,
@Nonnull TaskListener listener) throws InterruptedException, IOException {
PrintStream logger = listener.getLogger();
+ EnvVars envVars = run.getEnvironment(listener);
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret.getPlainText());
String local = localPath.substring(1);
String remote = remotePath.substring(1);
- FilePath p = new FilePath(workspace, local);
+
+ String expandLocal = envVars.expand(local);
+ String expandRemote = envVars.expand(remote);
+ logger.println("expandLocalPath =>" + expandLocal);
+ logger.println("expandRemotePath =>" + expandRemote);
+ FilePath p = new FilePath(workspace, expandLocal);
if (p.isDirectory()) {
logger.println("upload dir => " + p);
- upload(client, logger, remote, p, true);
+ upload(client, logger, expandRemote, p, true);
logger.println("upload dir success");
} else {
logger.println("upload file => " + p);
- uploadFile(client, logger, remote, p);
+ uploadFile(client, logger, expandRemote, p);
logger.println("upload file success");
}