Skip to content

Commit 03e53e8

Browse files
authored
Cacheability improvements for thirdparty audit task (#42085)
1 parent c59da59 commit 03e53e8

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

buildSrc/src/main/java/org/elasticsearch/gradle/precommit/ThirdPartyAuditTask.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,13 @@
2828
import org.gradle.api.file.FileTree;
2929
import org.gradle.api.specs.Spec;
3030
import org.gradle.api.tasks.CacheableTask;
31+
import org.gradle.api.tasks.Classpath;
3132
import org.gradle.api.tasks.Input;
3233
import org.gradle.api.tasks.InputFile;
3334
import org.gradle.api.tasks.InputFiles;
35+
import org.gradle.api.tasks.Internal;
3436
import org.gradle.api.tasks.Optional;
35-
import org.gradle.api.tasks.OutputDirectory;
37+
import org.gradle.api.tasks.OutputFile;
3638
import org.gradle.api.tasks.PathSensitive;
3739
import org.gradle.api.tasks.PathSensitivity;
3840
import org.gradle.api.tasks.SkipWhenEmpty;
@@ -45,6 +47,7 @@
4547
import java.net.URISyntaxException;
4648
import java.net.URL;
4749
import java.nio.charset.StandardCharsets;
50+
import java.nio.file.Files;
4851
import java.util.Arrays;
4952
import java.util.Collections;
5053
import java.util.Set;
@@ -113,14 +116,19 @@ public void setJavaHome(String javaHome) {
113116
this.javaHome = javaHome;
114117
}
115118

116-
@OutputDirectory
119+
@Internal
117120
public File getJarExpandDir() {
118121
return new File(
119122
new File(getProject().getBuildDir(), "precommit/thirdPartyAudit"),
120123
getName()
121124
);
122125
}
123126

127+
@OutputFile
128+
public File getSuccessMarker() {
129+
return new File(getProject().getBuildDir(), "markers/" + getName());
130+
}
131+
124132
public void ignoreMissingClasses(String... classesOrPackages) {
125133
if (classesOrPackages.length == 0) {
126134
missingClassExcludes = null;
@@ -157,8 +165,7 @@ public Set<String> getMissingClassExcludes() {
157165
return missingClassExcludes;
158166
}
159167

160-
@InputFiles
161-
@PathSensitive(PathSensitivity.NAME_ONLY)
168+
@Classpath
162169
@SkipWhenEmpty
163170
public Set<File> getJarsToScan() {
164171
// These are SelfResolvingDependency, and some of them backed by file collections, like the Gradle API files,
@@ -241,6 +248,10 @@ public void runThirdPartyAudit() throws IOException {
241248
}
242249

243250
assertNoJarHell(jdkJarHellClasses);
251+
252+
// Mark successful third party audit check
253+
getSuccessMarker().getParentFile().mkdirs();
254+
Files.write(getSuccessMarker().toPath(), new byte[]{});
244255
}
245256

246257
private void logForbiddenAPIsOutput(String forbiddenApisOutput) {

0 commit comments

Comments
 (0)