22
22
import java .nio .file .Files ;
23
23
import java .util .Collections ;
24
24
import java .util .Objects ;
25
+ import java .util .TreeMap ;
25
26
import org .gradle .api .Action ;
26
27
import org .gradle .api .DefaultTask ;
27
28
import org .gradle .api .Plugin ;
28
29
import org .gradle .api .Project ;
29
- import org .gradle .api .Task ;
30
30
import org .gradle .api .file .DirectoryProperty ;
31
31
import org .gradle .api .provider .Property ;
32
32
import org .gradle .api .tasks .CacheableTask ;
@@ -52,7 +52,7 @@ public Extension(Project project) {
52
52
this .project = Objects .requireNonNull (project );
53
53
}
54
54
55
- public TaskProvider <?> npm_run (String name , Action <Task > taskConfig ) {
55
+ public TaskProvider <?> npm_run (String name , Action <NpmRunTask > taskConfig ) {
56
56
return project .getTasks ().register ("npm_run_" + name , NpmRunTask .class , task -> {
57
57
task .taskName = name ;
58
58
try {
@@ -76,12 +76,18 @@ public TaskProvider<?> npm_run(String name, Action<Task> taskConfig) {
76
76
@ CacheableTask
77
77
public abstract static class NpmRunTask extends DefaultTask {
78
78
public String taskName ;
79
+ private TreeMap <String , String > environment = new TreeMap <>();
79
80
80
81
@ Input
81
82
public String getTaskName () {
82
83
return taskName ;
83
84
}
84
85
86
+ @ Input
87
+ public TreeMap <String , String > getEnvironment () {
88
+ return environment ;
89
+ }
90
+
85
91
@ Internal
86
92
public abstract Property <SetupCleanupNode > getSetup ();
87
93
@@ -95,7 +101,7 @@ public void npmCiRunTask() throws Exception {
95
101
setup .start (getProjectDir ().get ().getAsFile ());
96
102
// run the gulp task
97
103
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 );
99
105
}
100
106
}
101
107
0 commit comments