2222import java .nio .file .Files ;
2323import java .util .Collections ;
2424import java .util .Objects ;
25+ import java .util .TreeMap ;
2526import org .gradle .api .Action ;
2627import org .gradle .api .DefaultTask ;
2728import org .gradle .api .Plugin ;
2829import org .gradle .api .Project ;
29- import org .gradle .api .Task ;
3030import org .gradle .api .file .DirectoryProperty ;
3131import org .gradle .api .provider .Property ;
3232import org .gradle .api .tasks .CacheableTask ;
@@ -52,7 +52,7 @@ public Extension(Project project) {
5252 this .project = Objects .requireNonNull (project );
5353 }
5454
55- public TaskProvider <?> npm_run (String name , Action <Task > taskConfig ) {
55+ public TaskProvider <?> npm_run (String name , Action <NpmRunTask > taskConfig ) {
5656 return project .getTasks ().register ("npm_run_" + name , NpmRunTask .class , task -> {
5757 task .taskName = name ;
5858 try {
@@ -76,12 +76,18 @@ public TaskProvider<?> npm_run(String name, Action<Task> taskConfig) {
7676 @ CacheableTask
7777 public abstract static class NpmRunTask extends DefaultTask {
7878 public String taskName ;
79+ private TreeMap <String , String > environment = new TreeMap <>();
7980
8081 @ Input
8182 public String getTaskName () {
8283 return taskName ;
8384 }
8485
86+ @ Input
87+ public TreeMap <String , String > getEnvironment () {
88+ return environment ;
89+ }
90+
8591 @ Internal
8692 public abstract Property <SetupCleanupNode > getSetup ();
8793
@@ -95,7 +101,7 @@ public void npmCiRunTask() throws Exception {
95101 setup .start (getProjectDir ().get ().getAsFile ());
96102 // run the gulp task
97103 ProxyConfig proxyConfig = new ProxyConfig (Collections .emptyList ());
98- setup .factory ().getNpmRunner (proxyConfig , null ).execute ("run " + taskName , null );
104+ setup .factory ().getNpmRunner (proxyConfig , null ).execute ("run " + taskName , environment );
99105 }
100106 }
101107
0 commit comments