Skip to content

Commit 9982663

Browse files
committed
Initial support for local cross-platform CI tests
1 parent a06f701 commit 9982663

25 files changed

Lines changed: 144 additions & 12 deletions

File tree

.blaze/blaze.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
blaze.dependencies = [
2+
"com.fizzed:blaze-ssh"
3+
"com.fizzed:buildx:1.0.7"
24
"com.fizzed:jne:4.1.1"
35
]
46

.blaze/blaze.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import com.fizzed.blaze.Config;
22
import com.fizzed.blaze.Contexts;
33
import com.fizzed.blaze.Task;
4+
import com.fizzed.buildx.Buildx;
5+
import com.fizzed.buildx.Target;
46
import com.fizzed.jne.HardwareArchitecture;
57
import com.fizzed.jne.JavaHome;
68
import com.fizzed.jne.JavaHomeFinder;
@@ -87,4 +89,26 @@ public void test_all_jdks() throws Exception {
8789
jdks.forEach(jdk -> log.info(" {}", jdk));
8890
}
8991

92+
private final List<Target> crossTestTargets = asList(
93+
new Target("linux", "x64").setTags("test").setHost("build-x64-linux-latest"),
94+
new Target("linux", "arm64").setTags("test").setHost("build-arm64-linux-latest"),
95+
new Target("linux", "riscv64").setTags("test").setHost("build-riscv64-linux-latest"),
96+
new Target("macos", "x64").setTags("test").setHost("build-x64-macos-latest"),
97+
new Target("macos", "arm64").setTags("test").setHost("build-arm64-macos-latest"),
98+
new Target("windows", "x64").setTags("test").setHost("build-x64-windows-latest"),
99+
new Target("windows", "arm64").setTags("test").setHost("build-arm64-windows-latest"),
100+
new Target("freebsd", "x64").setTags("test").setHost("build-x64-freebsd-latest"),
101+
new Target("openbsd", "x64").setTags("test").setHost("build-x64-openbsd-latest")
102+
);
103+
104+
@Task(order = 1)
105+
public void cross_tests() throws Exception {
106+
new Buildx(crossTestTargets)
107+
.tags("test")
108+
.execute((target, project) -> {
109+
project.action("mvn", "clean", "test")
110+
.run();
111+
});
112+
}
113+
90114
}

.blaze/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@
6060
<artifactId>zt-exec</artifactId>
6161
<version>1.12</version>
6262
</dependency>
63+
<dependency>
64+
<groupId>com.fizzed</groupId>
65+
<artifactId>blaze-ssh</artifactId>
66+
<version>1.5.0</version>
67+
</dependency>
68+
<dependency>
69+
<groupId>com.fizzed</groupId>
70+
<artifactId>buildx</artifactId>
71+
<version>1.0.7</version>
72+
</dependency>
6373
<dependency>
6474
<groupId>com.fizzed</groupId>
6575
<artifactId>jne</artifactId>

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ target
22
*.iml
33
nb-configuration.xml
44
.idea
5+
.buildx

bigmap-integration-tests/src/test/java/com/fizzed/bigmap/AbstractBigMapTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.fizzed.bigmap;
1717

1818
import org.junit.jupiter.api.Test;
19+
1920
import java.io.IOException;
2021
import java.nio.file.Files;
2122
import java.util.*;

bigmap-integration-tests/src/test/java/com/fizzed/bigmap/RocksBigLinkedMapTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,25 @@
1616
package com.fizzed.bigmap;
1717

1818
import com.fizzed.bigmap.rocksdb.RocksBigLinkedMapBuilder;
19+
import com.fizzed.jne.HardwareArchitecture;
20+
import com.fizzed.jne.NativeTarget;
21+
import com.fizzed.jne.OperatingSystem;
22+
import org.junit.jupiter.api.condition.DisabledIf;
1923

2024
import java.nio.file.Paths;
2125
import java.util.Map;
2226

27+
@DisabledIf("isUnsupportedOs")
2328
public class RocksBigLinkedMapTest extends AbstractBigLinkedMapTest {
2429

30+
static public boolean isUnsupportedOs() {
31+
final NativeTarget current = NativeTarget.detect();
32+
return current.getOperatingSystem() == OperatingSystem.FREEBSD
33+
|| current.getOperatingSystem() == OperatingSystem.OPENBSD
34+
|| (current.getOperatingSystem() == OperatingSystem.WINDOWS && current.getHardwareArchitecture() == HardwareArchitecture.ARM64)
35+
|| (current.getOperatingSystem() == OperatingSystem.LINUX && current.getHardwareArchitecture() == HardwareArchitecture.RISCV64);
36+
}
37+
2538
@Override
2639
public <K,V> Map<K, V> newMap(Class<K> keyType, Class<V> valueType) {
2740
return new RocksBigLinkedMapBuilder<K,V>()

bigmap-integration-tests/src/test/java/com/fizzed/bigmap/RocksBigLinkedSetTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,25 @@
1616
package com.fizzed.bigmap;
1717

1818
import com.fizzed.bigmap.rocksdb.RocksBigLinkedSetBuilder;
19+
import com.fizzed.jne.HardwareArchitecture;
20+
import com.fizzed.jne.NativeTarget;
21+
import com.fizzed.jne.OperatingSystem;
22+
import org.junit.jupiter.api.condition.DisabledIf;
1923

2024
import java.nio.file.Paths;
2125
import java.util.Set;
2226

27+
@DisabledIf("isUnsupportedOs")
2328
public class RocksBigLinkedSetTest extends AbstractBigLinkedSetTest {
2429

30+
static public boolean isUnsupportedOs() {
31+
final NativeTarget current = NativeTarget.detect();
32+
return current.getOperatingSystem() == OperatingSystem.FREEBSD
33+
|| current.getOperatingSystem() == OperatingSystem.OPENBSD
34+
|| (current.getOperatingSystem() == OperatingSystem.WINDOWS && current.getHardwareArchitecture() == HardwareArchitecture.ARM64)
35+
|| (current.getOperatingSystem() == OperatingSystem.LINUX && current.getHardwareArchitecture() == HardwareArchitecture.RISCV64);
36+
}
37+
2538
@Override
2639
public <V> Set<V> newSet(Class<V> valueType) {
2740
return new RocksBigLinkedSetBuilder<V>()

bigmap-integration-tests/src/test/java/com/fizzed/bigmap/RocksBigMapTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,25 @@
1616
package com.fizzed.bigmap;
1717

1818
import com.fizzed.bigmap.rocksdb.RocksBigMapBuilder;
19+
import com.fizzed.jne.HardwareArchitecture;
20+
import com.fizzed.jne.NativeTarget;
21+
import com.fizzed.jne.OperatingSystem;
22+
import org.junit.jupiter.api.condition.DisabledIf;
1923

2024
import java.nio.file.Paths;
2125
import java.util.Map;
2226

27+
@DisabledIf("isUnsupportedOs")
2328
public class RocksBigMapTest extends AbstractBigMapTest {
2429

30+
static public boolean isUnsupportedOs() {
31+
final NativeTarget current = NativeTarget.detect();
32+
return current.getOperatingSystem() == OperatingSystem.FREEBSD
33+
|| current.getOperatingSystem() == OperatingSystem.OPENBSD
34+
|| (current.getOperatingSystem() == OperatingSystem.WINDOWS && current.getHardwareArchitecture() == HardwareArchitecture.ARM64)
35+
|| (current.getOperatingSystem() == OperatingSystem.LINUX && current.getHardwareArchitecture() == HardwareArchitecture.RISCV64);
36+
}
37+
2538
@Override
2639
public <K,V> Map<K, V> newMap(Class<K> keyType, Class<V> valueType) {
2740
return new RocksBigMapBuilder<K,V>()

bigmap-integration-tests/src/test/java/com/fizzed/bigmap/RocksBigSetTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,25 @@
1616
package com.fizzed.bigmap;
1717

1818
import com.fizzed.bigmap.rocksdb.RocksBigSetBuilder;
19+
import com.fizzed.jne.HardwareArchitecture;
20+
import com.fizzed.jne.NativeTarget;
21+
import com.fizzed.jne.OperatingSystem;
22+
import org.junit.jupiter.api.condition.DisabledIf;
1923

2024
import java.nio.file.Paths;
2125
import java.util.Set;
2226

27+
@DisabledIf("isUnsupportedOs")
2328
public class RocksBigSetTest extends AbstractBigSetTest {
2429

30+
static public boolean isUnsupportedOs() {
31+
final NativeTarget current = NativeTarget.detect();
32+
return current.getOperatingSystem() == OperatingSystem.FREEBSD
33+
|| current.getOperatingSystem() == OperatingSystem.OPENBSD
34+
|| (current.getOperatingSystem() == OperatingSystem.WINDOWS && current.getHardwareArchitecture() == HardwareArchitecture.ARM64)
35+
|| (current.getOperatingSystem() == OperatingSystem.LINUX && current.getHardwareArchitecture() == HardwareArchitecture.RISCV64);
36+
}
37+
2538
@Override
2639
public <V> Set<V> newSet(Class<V> valueType) {
2740
return new RocksBigSetBuilder<V>()

bigmap-integration-tests/src/test/java/com/fizzed/bigmap/TkrzwBigLinkedMapTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
package com.fizzed.bigmap;
1717

1818
import com.fizzed.bigmap.tkrzw.TkrzwBigLinkedMapBuilder;
19+
import org.junit.jupiter.api.condition.DisabledOnOs;
20+
import org.junit.jupiter.api.condition.OS;
1921

2022
import java.nio.file.Paths;
2123
import java.util.Map;
2224

25+
@DisabledOnOs({ OS.FREEBSD, OS.OPENBSD })
2326
public class TkrzwBigLinkedMapTest extends AbstractBigLinkedMapTest {
2427

2528
@Override

0 commit comments

Comments
 (0)