Skip to content

Commit d567e90

Browse files
committed
[fix]: CI build failures #173
1 parent 85523c9 commit d567e90

6 files changed

Lines changed: 44 additions & 22 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,13 @@ jobs:
3939
uses: docker/setup-buildx-action@v3.10.0
4040
- name: Build with Maven
4141
run: ./mvnw verify
42+
- name: Upload test logs on failure
43+
if: failure()
44+
uses: actions/upload-artifact@v4
45+
with:
46+
name: test-logs-java-${{ matrix.java-version }}
47+
path: |
48+
**/target/surefire-reports/
49+
**/target/failsafe-reports/
50+
**/hs_err_*.log
51+
retention-days: 7

flink-connector-clickhouse-e2e-test/pom.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,21 @@ limitations under the License.
3636
<dependencies>
3737
<dependency>
3838
<groupId>org.testcontainers</groupId>
39-
<artifactId>clickhouse</artifactId>
39+
<artifactId>testcontainers-clickhouse</artifactId>
4040
<version>${testcontainer.version}</version>
41+
<scope>test</scope>
4142
</dependency>
4243
<dependency>
4344
<groupId>org.apache.flink</groupId>
4445
<artifactId>flink-connector-test-utils</artifactId>
4546
<version>${flink.version}</version>
4647
<scope>test</scope>
48+
<exclusions>
49+
<exclusion>
50+
<artifactId>commons-io</artifactId>
51+
<groupId>commons-io</groupId>
52+
</exclusion>
53+
</exclusions>
4754
</dependency>
4855
<dependency>
4956
<groupId>org.apache.flink</groupId>

flink-connector-clickhouse-e2e-test/src/test/java/org/apache/flink/connector/clickhouse/ClickhouseE2ECase.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public void testSink() throws Exception {
2727
CLICKHOUSE_CONTAINER.getJdbcUrl(),
2828
CLICKHOUSE_CONTAINER.getUsername(),
2929
CLICKHOUSE_CONTAINER.getPassword());
30+
Thread.sleep(5000);
31+
3032
proxy.execute(
3133
"create table test (id Int32, name String, float32_column Float32, date_column Date,datetime_column DateTime, array_column Array(Int32)) engine = Memory");
3234
proxy.execute(
@@ -52,7 +54,9 @@ public void testSink() throws Exception {
5254
+ "',\n"
5355
+ " 'table-name' = 'test',\n"
5456
+ " 'username'='test_username',\n"
55-
+ " 'password'='test_password'\n"
57+
+ " 'password'='test_password',\n"
58+
+ " 'properties.compress' = 'false',\n"
59+
+ " 'properties.decompress' = 'false'\n"
5660
+ ");");
5761
sqlLines.add(
5862
"create table test (id int, name varchar,float32_column FLOAT,\n"
@@ -63,7 +67,9 @@ public void testSink() throws Exception {
6367
+ "',\n"
6468
+ " 'table-name' = 'test_insert',\n"
6569
+ " 'username'='test_username',\n"
66-
+ " 'password'='test_password'\n"
70+
+ " 'password'='test_password',\n"
71+
+ " 'properties.compress' = 'false',\n"
72+
+ " 'properties.decompress' = 'false'\n"
6773
+ ");");
6874
sqlLines.add("insert into test select * from clickhouse_test;");
6975

@@ -86,7 +92,7 @@ public void testSink() throws Exception {
8692
expectedResult,
8793
"test_insert",
8894
Arrays.asList("id", "name", "float32_column", "datetime_column", "array_column"),
89-
60000);
95+
600_000);
9096
}
9197

9298
@After

flink-connector-clickhouse-e2e-test/src/test/java/org/apache/flink/connector/clickhouse/ClickhouseProxy.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
/** A proxy for Clickhouse to execute SQLs and check results. */
2222
public class ClickhouseProxy {
23+
2324
private final String jdbcUrl;
2425
private final String username;
2526
private final String password;
@@ -41,13 +42,15 @@ public void connect() {
4142
Properties properties = new Properties();
4243
properties.put("username", username);
4344
properties.put("password", password);
45+
properties.put("compress", "false");
46+
properties.put("decompress", "false");
4447
ClickHouseDataSource clickHouseDataSource =
4548
new ClickHouseDataSource(jdbcUrl, properties);
4649
connection = clickHouseDataSource.getConnection(username, password);
4750
statement = connection.createStatement();
4851
}
4952
} catch (Exception e) {
50-
logger.error("Failed to connect to clickhouse", e);
53+
throw new RuntimeException("Cannot establish ClickHouse connection", e);
5154
}
5255
}
5356

flink-connector-clickhouse-e2e-test/src/test/java/org/apache/flink/connector/clickhouse/FlinkContainerTestEnvironment.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import org.apache.flink.client.program.rest.RestClusterClient;
77
import org.apache.flink.configuration.Configuration;
88
import org.apache.flink.configuration.RestOptions;
9-
import org.apache.flink.connector.testframe.container.TestcontainersSettings;
109
import org.apache.flink.runtime.client.JobStatusMessage;
1110
import org.apache.flink.table.api.ValidationException;
1211
import org.apache.flink.test.resources.ResourceTestUtils;
@@ -22,6 +21,7 @@
2221
import org.testcontainers.containers.GenericContainer;
2322
import org.testcontainers.containers.Network;
2423
import org.testcontainers.containers.output.Slf4jLogConsumer;
24+
import org.testcontainers.containers.wait.strategy.Wait;
2525
import org.testcontainers.lifecycle.Startables;
2626
import org.testcontainers.utility.DockerImageName;
2727
import org.testcontainers.utility.MountableFile;
@@ -54,15 +54,15 @@ public class FlinkContainerTestEnvironment {
5454
.withExposedPorts(8123, 9000)
5555
.withUsername("test_username")
5656
.withPassword("test_password")
57+
.withStartupTimeout(Duration.ofMinutes(10))
58+
.withStartupAttempts(3)
59+
.waitingFor(
60+
Wait.forHttp("/ping")
61+
.forPort(8123)
62+
.forStatusCode(200)
63+
.withStartupTimeout(Duration.ofMinutes(10)))
5764
.withLogConsumer(new Slf4jLogConsumer(logger));
5865

59-
private static final TestcontainersSettings TESTCONTAINERS_SETTINGS =
60-
TestcontainersSettings.builder()
61-
.logger(logger)
62-
.network(NETWORK)
63-
.dependsOn(CLICKHOUSE_CONTAINER)
64-
.build();
65-
6666
public static final Path SQL_CONNECTOR_CLICKHOUSE_JAR =
6767
ResourceTestUtils.getResource("flink-connector-clickhouse-1.0.0-SNAPSHOT.jar");
6868
public static final Path CLICKHOUSE_JDBC_JAR =
@@ -81,6 +81,7 @@ public class FlinkContainerTestEnvironment {
8181
@Before
8282
public void setUp() throws Exception {
8383
CLICKHOUSE_CONTAINER.start();
84+
Thread.sleep(30000);
8485

8586
String properties =
8687
String.join(
@@ -90,7 +91,7 @@ public void setUp() throws Exception {
9091
"heartbeat.timeout: 60000",
9192
"parallelism.default: 1"));
9293
jobManager =
93-
new GenericContainer<>(new DockerImageName("flink:2.1-scala_2.12"))
94+
new GenericContainer<>(DockerImageName.parse("flink:2.1-scala_2.12"))
9495
.withCommand("jobmanager")
9596
.withNetwork(NETWORK)
9697
.withExtraHost("host.docker.internal", "host-gateway")
@@ -101,7 +102,7 @@ public void setUp() throws Exception {
101102
.withEnv("FLINK_PROPERTIES", properties)
102103
.withLogConsumer(new Slf4jLogConsumer(logger));
103104
taskManager =
104-
new GenericContainer<>(new DockerImageName("flink:2.1-scala_2.12"))
105+
new GenericContainer<>(DockerImageName.parse("flink:2.1-scala_2.12"))
105106
.withCommand("taskmanager")
106107
.withExtraHost("host.docker.internal", "host-gateway")
107108
.withNetwork(NETWORK)
@@ -184,11 +185,6 @@ private String copyAndGetContainerPath(GenericContainer<?> container, String fil
184185
return containerPath;
185186
}
186187

187-
private static List<String> readSqlFile(final String resourceName) throws Exception {
188-
return Files.readAllLines(
189-
Paths.get(ClickhouseE2ECase.class.getResource("/" + resourceName).toURI()));
190-
}
191-
192188
public void waitUntilJobRunning(Duration timeout) {
193189
RestClusterClient<?> clusterClient = getRestClusterClient();
194190
Deadline deadline = Deadline.fromNow(timeout);

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ limitations under the License.
6161
<clickhouse-jdbc.version>0.6.4</clickhouse-jdbc.version>
6262
<scala.binary.version>2.12</scala.binary.version>
6363
<flink.version>2.1.0</flink.version>
64-
<commons-lang3.version>3.13.0</commons-lang3.version>
65-
<testcontainer.version>1.19.8</testcontainer.version>
64+
<commons-lang3.version>3.18.0</commons-lang3.version>
65+
<testcontainer.version>2.0.2</testcontainer.version>
6666
<httpclient5.version>5.2.1</httpclient5.version>
6767
<httpcore5.version>5.2</httpcore5.version>
6868
<shade.base>org.apache.flink.shaded.clickhouse</shade.base>

0 commit comments

Comments
 (0)