From 2c177f1ca8d1a3c974bef971125bc2c3b948f980 Mon Sep 17 00:00:00 2001 From: mantou Date: Sun, 15 Mar 2020 01:56:51 +0800 Subject: [PATCH] add env inject feature for upload path part --- pom.xml | 2 +- .../java/org/inurl/jenkins/plugin/OSSPublisher.java | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 96b1b10..53d726d 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 793a6e8..71b5740 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"); } -- GitLab