Skip to content

Commit a23e7a5

Browse files
committed
Make integration tests publish multi arch images
1 parent fe7f22f commit a23e7a5

File tree

3 files changed

+50
-20
lines changed

3 files changed

+50
-20
lines changed

.github/workflows/integration-tests.yaml

+18-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,23 @@ jobs:
3838
distribution: 'temurin'
3939
cache: 'maven'
4040

41+
# Open-Source Machine emulator that allows you to emulate multiple CPU architectures on your machine
42+
- name: Set up QEMU
43+
uses: docker/setup-qemu-action@v1
44+
45+
# Docker CLI plugin for extended build capabilities with BuildKit
46+
- name: Set up Docker Buildx
47+
id: buildx
48+
uses: docker/setup-buildx-action@v1
49+
50+
- name: Inspect builder
51+
run: |
52+
echo "Name: ${{ steps.buildx.outputs.name }}"
53+
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
54+
echo "Status: ${{ steps.buildx.outputs.status }}"
55+
echo "Flags: ${{ steps.buildx.outputs.flags }}"
56+
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
57+
4158
- name: Get maven wrapper
4259
run: mvn -N io.takari:maven:wrapper -Dmaven=3.8.2
4360

@@ -46,7 +63,7 @@ jobs:
4663

4764
- name: Build and Push Application image
4865
run: |
49-
docker build --push -f ./distro/docker/target/docker/Dockerfile.jvm -t ttl.sh/${{ github.sha }}/apicurio/apicurio-registry:1d ./distro/docker/target/docker
66+
docker buildx build --push -f ./distro/docker/target/docker/Dockerfile.jvm -t ttl.sh/${{ github.sha }}/apicurio/apicurio-registry:1d --platform linux/amd64,linux/arm64,linux/s390x,linux/ppc64le ./distro/docker/target/docker
5067
5168
prepare-ui-tests:
5269
name: Prepare for UI Integration Tests

app/src/test/java/io/apicurio/registry/storage/impl/gitops/GitTestRepositoryManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ public class GitTestRepositoryManager implements QuarkusTestResourceLifecycleMan
1010
@Getter
1111
private static GitTestRepository testRepository;
1212

13-
1413
@Override
1514
public Map<String, String> start() {
1615
testRepository = new GitTestRepository();
16+
1717
testRepository.initialize();
1818

1919
return Map.of(

utils/kafka/src/test/java/io/apicurio/registry/test/utils/KafkaTestContainerManager.java

+31-18
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
44
import org.slf4j.Logger;
55
import org.slf4j.LoggerFactory;
6+
import org.testcontainers.containers.Network;
67
import org.testcontainers.containers.output.Slf4jLogConsumer;
78
import org.testcontainers.redpanda.RedpandaContainer;
89

10+
import java.util.Collections;
911
import java.util.Map;
1012

1113
public class KafkaTestContainerManager implements QuarkusTestResourceLifecycleManager {
@@ -15,27 +17,38 @@ public class KafkaTestContainerManager implements QuarkusTestResourceLifecycleMa
1517

1618
@Override
1719
public Map<String, String> start() {
18-
log.info("Starting the Kafka Test Container");
19-
kafka = new RedpandaContainer("docker.redpanda.com/vectorized/redpanda");
20-
21-
kafka.addEnv("KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR", "1");
22-
kafka.addEnv("KAFKA_TRANSACTION_STATE_LOG_MIN_ISR", "1");
23-
kafka.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("kafka-testcontainer")));
24-
kafka.start();
25-
26-
String bootstrapServers = kafka.getBootstrapServers();
27-
28-
System.setProperty("bootstrap.servers", bootstrapServers);
29-
30-
return Map.of(
31-
"bootstrap.servers", bootstrapServers,
32-
"registry.events.kafka.config.bootstrap.servers", bootstrapServers,
33-
"registry.kafkasql.bootstrap.servers", bootstrapServers);
20+
if (!Boolean.parseBoolean(System.getProperty("cluster.tests"))) {
21+
22+
log.info("Starting the Kafka Test Container");
23+
kafka = new RedpandaContainer("docker.redpanda.com/vectorized/redpanda");
24+
25+
kafka.addEnv("KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR", "1");
26+
kafka.addEnv("KAFKA_TRANSACTION_STATE_LOG_MIN_ISR", "1");
27+
kafka.withListener(() -> "redpanda:19092");
28+
kafka.withNetwork(Network.SHARED);
29+
kafka.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("kafka-testcontainer")));
30+
kafka.start();
31+
32+
String externalBootstrapServers = kafka.getBootstrapServers();
33+
34+
String bootstrapServers = "redpanda:19092";
35+
System.setProperty("bootstrap.servers.internal", bootstrapServers);
36+
System.setProperty("bootstrap.servers.external", externalBootstrapServers);
37+
38+
return Map.of(
39+
"bootstrap.servers", externalBootstrapServers,
40+
"registry.events.kafka.config.bootstrap.servers", externalBootstrapServers,
41+
"registry.kafkasql.bootstrap.servers", externalBootstrapServers);
42+
} else {
43+
return Collections.emptyMap();
44+
}
3445
}
3546

3647
@Override
3748
public void stop() {
38-
log.info("Stopping the Kafka Test Container");
39-
kafka.stop();
49+
if (kafka != null) {
50+
log.info("Stopping the Kafka Test Container");
51+
kafka.stop();
52+
}
4053
}
4154
}

0 commit comments

Comments
 (0)