diff --git a/.mvn/maven.config b/.mvn/maven.config
index 2a0299c4..66d406fe 100644
--- a/.mvn/maven.config
+++ b/.mvn/maven.config
@@ -1,2 +1,3 @@
-Pconsume-incrementals
-Pmight-produce-incrementals
+-Duse-jenkins-bom
diff --git a/pom.xml b/pom.xml
index efaadee2..79d0a7f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,9 +22,10 @@
1.35
-SNAPSHOT
- 2.150.1
+ 2.248
8
src/main/go/org/jenkinsci/plugins/durabletask
+ true
@@ -53,6 +54,12 @@
1.8
test
+
+ org.jenkins-ci.plugins
+ trilead-api
+ 1.0.5
+ test
+
org.jenkins-ci.plugins
ssh-slaves
diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java b/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java
index d0a6314f..df50940c 100644
--- a/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java
+++ b/src/main/java/org/jenkinsci/plugins/durabletask/BourneShellScript.java
@@ -225,6 +225,9 @@ public String getScript() {
}
LOGGER.log(Level.FINE, "launching {0}", launcherCmd);
+
+ launcher.prepareFilterRules(getRun(), this);
+
Launcher.ProcStarter ps = launcher.launch().cmds(launcherCmd).envs(escape(envVars)).pwd(ws).quiet(true);
if (LAUNCH_DIAGNOSTICS) {
ps.stdout(listener);
diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/DurableTask.java b/src/main/java/org/jenkinsci/plugins/durabletask/DurableTask.java
index 73cbbfa8..678284d7 100644
--- a/src/main/java/org/jenkinsci/plugins/durabletask/DurableTask.java
+++ b/src/main/java/org/jenkinsci/plugins/durabletask/DurableTask.java
@@ -29,6 +29,7 @@
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.AbstractDescribableImpl;
+import hudson.model.Run;
import hudson.model.TaskListener;
import java.io.IOException;
import java.nio.charset.Charset;
@@ -44,6 +45,25 @@ public abstract class DurableTask extends AbstractDescribableImpl i
private static final Logger LOGGER = Logger.getLogger(DurableTask.class.getName());
+ /**
+ * Optional information about the run that has triggered this task
+ */
+ protected transient Run, ?> run;
+
+ /**
+ * @since TODO
+ */
+ public void setRun(Run, ?> run) {
+ this.run = run;
+ }
+
+ /**
+ * @since TODO
+ */
+ public Run, ?> getRun() {
+ return run;
+ }
+
@Override public DurableTaskDescriptor getDescriptor() {
return (DurableTaskDescriptor) super.getDescriptor();
}
diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java
index 9ee9538c..d4df1d62 100644
--- a/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java
+++ b/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java
@@ -72,6 +72,7 @@
import javax.annotation.Nonnull;
import jenkins.MasterToSlaveFileCallable;
import jenkins.security.MasterToSlaveCallable;
+import jenkins.tasks.filters.EnvVarsFilterableBuilder;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.input.ReaderInputStream;
import org.apache.commons.io.output.CountingOutputStream;
@@ -81,7 +82,7 @@
/**
* A task which forks some external command and then waits for log and status files to be updated/created.
*/
-public abstract class FileMonitoringTask extends DurableTask {
+public abstract class FileMonitoringTask extends DurableTask implements EnvVarsFilterableBuilder {
private static final Logger LOGGER = Logger.getLogger(FileMonitoringTask.class.getName());
diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/PowershellScript.java b/src/main/java/org/jenkinsci/plugins/durabletask/PowershellScript.java
index 3c8680e1..f3cda5d7 100644
--- a/src/main/java/org/jenkinsci/plugins/durabletask/PowershellScript.java
+++ b/src/main/java/org/jenkinsci/plugins/durabletask/PowershellScript.java
@@ -37,6 +37,7 @@
import java.util.List;
import hudson.model.TaskListener;
import java.io.IOException;
+
import org.kohsuke.stapler.DataBoundConstructor;
import java.io.OutputStream;
import java.nio.charset.Charset;
@@ -126,7 +127,9 @@ public String getScript() {
writeWithBom(c.getPowerShellWrapperFile(ws), scriptWrapper);
}
}
-
+
+ launcher.prepareFilterRules(getRun(), this);
+
Launcher.ProcStarter ps = launcher.launch().cmds(args).envs(escape(envVars)).pwd(ws).quiet(true);
ps.readStdout().readStderr();
Proc p = ps.start();
diff --git a/src/main/java/org/jenkinsci/plugins/durabletask/WindowsBatchScript.java b/src/main/java/org/jenkinsci/plugins/durabletask/WindowsBatchScript.java
index 15248051..7e5cfc75 100644
--- a/src/main/java/org/jenkinsci/plugins/durabletask/WindowsBatchScript.java
+++ b/src/main/java/org/jenkinsci/plugins/durabletask/WindowsBatchScript.java
@@ -32,6 +32,7 @@
import hudson.Proc;
import hudson.model.TaskListener;
import java.io.IOException;
+
import org.kohsuke.stapler.DataBoundConstructor;
/**
@@ -76,6 +77,8 @@ public String getScript() {
c.getBatchFile1(ws).write(cmd, "UTF-8");
c.getBatchFile2(ws).write(script, "UTF-8");
+ launcher.prepareFilterRules(getRun(), this);
+
Launcher.ProcStarter ps = launcher.launch().cmds("cmd", "/c", "\"\"" + c.getBatchFile1(ws) + "\"\"").envs(escape(envVars)).pwd(ws).quiet(true);
/* Too noisy, and consumes a thread:
ps.stdout(listener);