Browse Source

Verify distro archives do not contain plain class files (#59073)

This is a test to ensure we do not run into a regression like we did in
https://github.com/elastic/elasticsearch/issues/59031
Rene Groeschke 5 years ago
parent
commit
3d40b35b97
1 changed files with 8 additions and 1 deletions
  1. 8 1
      distribution/archives/build.gradle

+ 8 - 1
distribution/archives/build.gradle

@@ -25,7 +25,7 @@ import org.elasticsearch.gradle.VersionProperties
 import org.elasticsearch.gradle.info.BuildParams
 import org.elasticsearch.gradle.plugin.PluginBuildPlugin
 import org.elasticsearch.gradle.tar.SymbolicLinkPreservingTar
-
+import groovy.io.FileType
 import java.nio.file.Files
 import java.nio.file.Path
 
@@ -243,6 +243,13 @@ subprojects {
       project.delete(archiveExtractionDir)
       archiveExtractionDir.mkdirs()
     }
+    // common sanity checks on extracted archive directly as part of checkExtraction
+    doLast {
+      // check no plain class files are packaged
+      archiveExtractionDir.eachFileRecurse (FileType.FILES) { file ->
+        assert file.name.endsWith(".class") == false
+      }
+    }
   }
   tasks.named('check').configure { dependsOn checkExtraction }
   if (project.name.contains('tar')) {