Skip to content

Commit 39ad8c9

Browse files
authored
Fix dev CI errors - March 2025 (#4393)
* ignore provisionally dev failing tests * Fix dev CI errors - March 2025 * add core property * split copyJar tasks * add settings.gradle taskExclude config * cleanup * cleanup
1 parent 642cd46 commit 39ad8c9

File tree

20 files changed

+119
-42
lines changed

20 files changed

+119
-42
lines changed

docs/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

extended-it/build.gradle

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,37 @@ dependencies {
6666
}
6767
}
6868

69+
tasks.register('copyApocCoreJar', Copy) {
70+
dependsOn(':core:shadowJar')
71+
from project(':core').tasks.shadowJar.archiveFile into layout.buildDirectory.dir('test-core/jar')
72+
}
73+
74+
tasks.register('copyApocExtendedJar', Copy) {
75+
dependsOn(':extended:shadowJar')
76+
from project(':extended').tasks.shadowJar.archiveFile into layout.buildDirectory.dir('test-extended/jar')
77+
}
78+
79+
test {
80+
// build core, extended and extra-dependencies JARs
81+
dependsOn(copyApocCoreJar)
82+
dependsOn(copyApocExtendedJar)
83+
dependsOn(':extra-dependencies:buildDependencies')
84+
maxParallelForks = 1
85+
doFirst {
86+
var apocJarCorePath = layout.buildDirectory.file("test-core/jar/apoc-${version}-core.jar").get().asFile.absolutePath
87+
println("apoc-core.test.jar.path=$apocJarCorePath")
88+
systemProperty 'apoc-core.test.jar.path', apocJarCorePath
89+
90+
var apocJarExtendedPath = layout.buildDirectory.file("test-extended/jar/apoc-${version}-extended.jar").get().asFile.absolutePath
91+
println("apoc-extended.test.jar.path=$apocJarExtendedPath")
92+
systemProperty 'apoc-extended.test.jar.path', apocJarExtendedPath
93+
94+
var apocExtendedJarPath = "${project(':extra-dependencies').buildDir}/allJars"
95+
println("apoc-extra-dependencies.test.jar.path=$apocExtendedJarPath")
96+
systemProperty 'apoc-extra-dependencies.test.jar.path', apocExtendedJarPath
97+
}
98+
}
99+
69100
java {
70101
sourceCompatibility = JavaVersion.VERSION_21
71102
targetCompatibility = JavaVersion.VERSION_21

extended-it/src/test/java/apoc/neo4j/docker/StartupExtendedTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.function.Function;
2323
import java.util.stream.Collectors;
2424

25+
import static apoc.util.ExtendedTestContainerUtil.extendedDir;
2526
import static apoc.util.TestContainerUtil.ApocPackage.CORE;
2627
import static apoc.util.TestContainerUtil.ApocPackage.EXTENDED;
2728
import static apoc.util.TestContainerUtil.createDB;
@@ -46,8 +47,8 @@ public class StartupExtendedTest {
4647

4748
static {
4849
// retrieve every extended procedure and function via the extendedCypher5.txt file
49-
final File extendedFileCypher5 = new File(TestContainerUtil.extendedDir, "src/main/resources/extendedCypher5.txt");
50-
final File extendedFileCypher25 = new File(TestContainerUtil.extendedDir, "src/main/resources/extendedCypher25.txt");
50+
final File extendedFileCypher5 = new File(extendedDir, "src/main/resources/extendedCypher5.txt");
51+
final File extendedFileCypher25 = new File(extendedDir, "src/main/resources/extendedCypher25.txt");
5152
try {
5253
EXPECTED_EXTENDED_NAMES_CYPHER_5 = FileUtils.readLines(extendedFileCypher5, StandardCharsets.UTF_8);
5354
EXPECTED_EXTENDED_NAMES_CYPHER_25 = FileUtils.readLines(extendedFileCypher25, StandardCharsets.UTF_8);

extended/src/test/java/apoc/util/ExtendedTestContainerUtil.java

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,35 @@
11
package apoc.util;
22

33
import java.io.File;
4+
import java.io.IOException;
5+
import java.nio.file.Files;
6+
import java.nio.file.Path;
7+
import java.nio.file.Paths;
48
import java.time.Duration;
59
import java.util.List;
610
import java.util.Map;
711
import java.util.function.BiConsumer;
812
import java.util.function.Consumer;
913

10-
import org.apache.commons.io.filefilter.IOFileFilter;
11-
import org.apache.commons.io.filefilter.WildcardFileFilter;
14+
import org.apache.commons.io.filefilter.FileFileFilter;
1215
import org.neo4j.driver.AuthToken;
1316
import org.neo4j.driver.AuthTokens;
1417
import org.neo4j.driver.Driver;
1518
import org.neo4j.driver.GraphDatabase;
1619
import org.neo4j.driver.Session;
1720
import org.neo4j.driver.SessionConfig;
1821

22+
23+
import static apoc.util.ExtendedTestUtil.copyFilesToFolder;
1924
import static apoc.util.ExtendedUtil.retryRunnable;
20-
import static apoc.util.TestContainerUtil.copyFilesToPlugin;
21-
import static apoc.util.TestContainerUtil.executeGradleTasks;
25+
import static apoc.util.TestContainerUtil.pluginsFolder;
2226
import static org.neo4j.configuration.GraphDatabaseSettings.SYSTEM_DATABASE_NAME;
2327

2428
public class ExtendedTestContainerUtil
2529
{
30+
public static File baseDir = Paths.get("..").toFile();
31+
public static File extendedDir = new File(baseDir, "extended");
32+
2633
public static TestcontainersCausalCluster createEnterpriseCluster( List<TestContainerUtil.ApocPackage> apocPackages, int numOfCoreInstances, int numberOfReadReplica, Map<String, Object> neo4jConfig, Map<String, String> envSettings) {
2734
return TestcontainersCausalCluster.create(apocPackages, numOfCoreInstances, numberOfReadReplica, Duration.ofMinutes(4), neo4jConfig, envSettings);
2835
}
@@ -36,16 +43,28 @@ public static void testCallInReadTransaction(Session session, String call, Consu
3643
}
3744

3845
public static void addExtraDependencies() {
39-
File extraDepsDir = new File(TestContainerUtil.baseDir, "extra-dependencies");
40-
// build the extra-dependencies
41-
executeGradleTasks(extraDepsDir, "buildDependencies");
42-
43-
// add all extra deps to the plugin docker folder
44-
final File directory = new File(extraDepsDir, "build/allJars");
45-
final IOFileFilter instance = new WildcardFileFilter("*.jar");
46-
copyFilesToPlugin(directory, instance, TestContainerUtil.pluginsFolder);
46+
String jarPathProp = "apoc-extra-dependencies.test.jar.path";
47+
String property = System.getProperty(jarPathProp);
48+
final var jarPath = Path.of(property);
49+
final var destination = pluginsFolder.toPath();
50+
try {
51+
System.out.println("Copying %s (prop %s) => %s".formatted(jarPath, jarPathProp, destination));
52+
Files.createDirectories(pluginsFolder.toPath());
53+
File jarFolder = jarPath.toFile();
54+
File destinationFolder = destination.toFile();
55+
if (!jarFolder.exists()) {
56+
throw new RuntimeException("Folder %s doesn't exist".formatted(jarFolder));
57+
}
58+
if (!destinationFolder.exists()) {
59+
throw new RuntimeException("Folder %s doesn't exist".formatted(destination));
60+
}
61+
copyFilesToFolder(jarFolder, FileFileFilter.INSTANCE, destinationFolder);
62+
} catch (IOException e) {
63+
throw new RuntimeException("Failed to copy %s to %s".formatted(jarPath, destination), e);
64+
}
4765
}
4866

67+
4968
/**
5069
* Open a `neo4j://` routing session for each cluster member against system db
5170
*/

extended/src/test/java/apoc/util/ExtendedTestUtil.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package apoc.util;
22

33
import apoc.util.collection.Iterables;
4+
import org.apache.commons.io.filefilter.IOFileFilter;
45
import org.neo4j.graphdb.GraphDatabaseService;
56
import org.neo4j.graphdb.Label;
67
import org.neo4j.graphdb.Node;
@@ -16,10 +17,7 @@
1617
import java.io.File;
1718
import java.io.IOException;
1819
import java.nio.file.Files;
19-
import java.util.Collections;
20-
import java.util.List;
21-
import java.util.Map;
22-
import java.util.Set;
20+
import java.util.*;
2321
import java.util.concurrent.TimeUnit;
2422
import java.util.function.Consumer;
2523
import java.util.stream.Collectors;
@@ -187,4 +185,15 @@ public static String getLogFileContent() {
187185
throw new RuntimeException(e);
188186
}
189187
}
188+
189+
public static void copyFilesToFolder(File directory, IOFileFilter instance, File targetFolder) {
190+
Collection<File> files = org.apache.commons.io.FileUtils.listFiles(directory, instance, null);
191+
for (File file : files) {
192+
try {
193+
org.apache.commons.io.FileUtils.copyFileToDirectory(file, targetFolder);
194+
} catch (IOException e) {
195+
throw new RuntimeException(e);
196+
}
197+
}
198+
}
190199
}

extra-dependencies/aws/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

extra-dependencies/build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ allprojects {
88
}
99
}
1010

11+
description = 'APOC :: Extra Dependencies'
12+
1113
configure(subprojects) {
1214
apply plugin: 'java'
1315
}
@@ -79,13 +81,12 @@ subprojects {
7981
group = 'org.neo4j.contrib'
8082
}
8183

82-
task copyJars(type: Copy) {
84+
tasks.register('copyJars', Copy) {
8385
from subprojects.collect { it.tasks.withType(Jar) }
8486
into "$buildDir/allJars"
8587
}
8688

87-
88-
task buildDependencies {
89+
tasks.register('buildDependencies') {
8990
subprojects.each { dependsOn("${it.name}:clean") }
9091
subprojects.each { dependsOn("${it.name}:build") }
9192
subprojects.each { dependsOn("${it.name}:shadowJar") }

extra-dependencies/couchbase/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

extra-dependencies/email/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

extra-dependencies/gcs/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

0 commit comments

Comments
 (0)