Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
22b65fa
First commit for integration tests
mzitnik Aug 18, 2025
7b0b53b
Merge branch 'main' into integration-tests
mzitnik Aug 20, 2025
e5da291
Adjust build gradle
mzitnik Aug 20, 2025
cd5f35d
Add workflow for integration tests
mzitnik Aug 21, 2025
2de44d5
Output some debug info in github action
mzitnik Aug 21, 2025
8640bb0
Configure java version to 11
mzitnik Aug 21, 2025
fe83307
Add debug info for intgreation tests workflow
mzitnik Aug 21, 2025
e53f167
Fix compile & tests
mzitnik Aug 21, 2025
0c06f1d
Change java version for tests
mzitnik Aug 21, 2025
3ea8c58
Change JDK Version in name
mzitnik Aug 21, 2025
57c5cfc
Adding check-cloud-credentials
mzitnik Aug 21, 2025
eb942dd
Change workflow
mzitnik Aug 21, 2025
5067525
Adding maven to build example
mzitnik Aug 21, 2025
86ea06f
create a shadowJar for base
mzitnik Aug 24, 2025
1ad18aa
Add example for flink based 1.17 & fix workflow
mzitnik Aug 24, 2025
0dd6c81
Update to java 17 to support the latest gradle version
mzitnik Aug 24, 2025
4e86383
Fix network creation for cloud
mzitnik Aug 24, 2025
c277bec
Clean build.gradle.kts
mzitnik Aug 24, 2025
ea3b86d
Remove system.out from code
mzitnik Aug 24, 2025
18e8dd8
Compress data file
mzitnik Aug 24, 2025
e33f4d7
Compress data file
mzitnik Aug 24, 2025
cf0a3d1
Added Flink 2.0.0 to workflow
mzitnik Aug 24, 2025
6ce3809
Add ignore paths when push on itegration-tests action
mzitnik Aug 26, 2025
39c7cc5
Clean build.gradle in flink-connector-clickhouse-1.17
mzitnik Aug 26, 2025
e9fbb21
Added comment to gradle.build
mzitnik Aug 26, 2025
af1d323
Adding logger & implement cluster teardown.
mzitnik Aug 26, 2025
1f08184
Delete old test file not in use any more
mzitnik Aug 27, 2025
86a2e0a
added timeout to github workflow
mzitnik Aug 27, 2025
f90407d
Added comment to build.gradle.kts
mzitnik Aug 27, 2025
2c1ef5d
Remove snapshot repository
mzitnik Aug 27, 2025
ce821a5
Fix throw exception
mzitnik Aug 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/integration-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Integration Tests CI (Java)

on: [push]

jobs:
test-integration-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
clickhouse: [ "23.7", "24.3", "latest", "cloud" ]
flink: [ "1.17.2", "1.18.1", "1.19.3", "1.20.2", "2.0.0", "latest"]
steps:
- name: Check for Cloud Credentials
id: check-cloud-credentials
run: |
if [[ "${{ matrix.clickhouse }}" == "cloud" && (-z "${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST_SMT }}" || -z "${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_PASSWORD_SMT }}") ]]; then
echo "SKIP_STEP=true" >> $GITHUB_ENV
else
echo "SKIP_STEP=false" >> $GITHUB_ENV
fi
shell: bash
- uses: actions/checkout@v3
if: env.SKIP_STEP != 'true'
- name: Set up JDK 17
if: env.SKIP_STEP != 'true'
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
architecture: x64
- name: Publish locally flink-connector-clickhouse-1.17
if: env.SKIP_STEP != 'true'
uses: gradle/gradle-build-action@v2
with:
arguments: :flink-connector-clickhouse-1.17:publishToMavenLocal
- name: Publish locally flink-connector-clickhouse-2.0.0
if: env.SKIP_STEP != 'true'
uses: gradle/gradle-build-action@v2
with:
arguments: :flink-connector-clickhouse-2.0.0:publishToMavenLocal
- name: Generate Flink Covid App example 2.X
if: env.SKIP_STEP != 'true'
working-directory: ./examples/maven/flink-v2/covid
run: mvn clean install
- name: Generate Flink Covid App example 1.17+
if: env.SKIP_STEP != 'true'
working-directory: ./examples/maven/flink-v1.7/covid
run: mvn clean install
- name: Setup and execute Gradle 'integration-test' task
if: env.SKIP_STEP != 'true'
uses: gradle/gradle-build-action@v2
env:
CLICKHOUSE_VERSION: ${{ matrix.clickhouse }}
CLICKHOUSE_CLOUD_HOST: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_HOST_SMT }}
CLICKHOUSE_CLOUD_PASSWORD: ${{ secrets.INTEGRATIONS_TEAM_TESTS_CLOUD_PASSWORD_SMT }}
FLINK_VERSION: ${{ matrix.flink }}
with:
arguments: :flink-connector-clickhouse-integration:test




8 changes: 4 additions & 4 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ jobs:
shell: bash
- uses: actions/checkout@v3
if: env.SKIP_STEP != 'true'
- name: Set up JDK 21
- name: Set up JDK 17
if: env.SKIP_STEP != 'true'
uses: actions/setup-java@v3
with:
java-version: '21'
java-version: '17'
distribution: 'adopt'
architecture: x64
- name: Setup and execute Gradle 'test' task
Expand Down Expand Up @@ -59,11 +59,11 @@ jobs:
shell: bash
- uses: actions/checkout@v3
if: env.SKIP_STEP != 'true'
- name: Set up JDK 21
- name: Set up JDK 17
if: env.SKIP_STEP != 'true'
uses: actions/setup-java@v3
with:
java-version: '21'
java-version: '17'
distribution: 'adopt'
architecture: x64
- name: Setup and execute Gradle 'test' task
Expand Down
26 changes: 3 additions & 23 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ plugins {
java
signing
id("com.gradleup.nmcp") version "0.0.8"
id("com.github.johnrengelman.shadow") version "8.1.1"

id("com.gradleup.shadow") version "9.0.2"
}

val sinkVersion by extra("0.0.1")
val flinkVersion by extra("1.18.0")
val clickhouseVersion by extra("0.4.6")
val clickhouseVersion by extra("0.9.1")
val junitVersion by extra("5.8.2")

allprojects {
Expand Down Expand Up @@ -75,23 +74,4 @@ subprojects {
"-s", "org.apache.flink.connector.clickhouse.test.scala.ClickHouseSinkTests"
)
}
}

//sourceSets {
// main {
// scala {
// srcDirs("src/main/scala")
// }
// java {
// srcDirs("src/main/java")
// }
// }
// test {
// scala {
// srcDirs("src/test/scala")
// }
// java {
// srcDirs("src/test/java")
// }
// }
//}
}
225 changes: 225 additions & 0 deletions examples/maven/flink-v1.7/covid/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.clickhouse.example.covid</groupId>
<artifactId>covid</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Flink Quickstart Job</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<flink.version>1.17.2</flink.version>
<target.java.version>11</target.java.version>
<scala.binary.version>2.12</scala.binary.version>
<maven.compiler.source>${target.java.version}</maven.compiler.source>
<maven.compiler.target>${target.java.version}</maven.compiler.target>
<log4j.version>2.24.1</log4j.version>
</properties>

<repositories>

<repository>
<id>apache.snapshots</id>
<name>Apache Development Snapshot Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

<dependencies>
<!-- Apache Flink dependencies -->
<!-- These dependencies are provided, because they should not be packaged into the JAR file. -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-connector-files -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-files</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.clickhouse.flink</groupId>
<artifactId>flink-connector-clickhouse-1.17</artifactId>
<version>0.0.1</version>
<classifier>all</classifier>
</dependency>


<!-- Add connector dependencies here. They must be in the default scope (compile). -->

<!-- Example:

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-kafka</artifactId>
<version>3.0.0-1.17</version>
</dependency>
-->

<!-- Add logging framework, to produce console output when running in the IDE. -->
<!-- These dependencies are excluded from the application JAR by default. -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>

<build>
<plugins>

<!-- Java Compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${target.java.version}</source>
<target>${target.java.version}</target>
</configuration>
</plugin>

<!-- We use the maven-shade plugin to create a fat jar that contains all necessary dependencies. -->
<!-- Change the value of <mainClass>...</mainClass> if your program entry point changes. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<artifactSet>
<excludes>
<exclude>org.apache.flink:flink-shaded-force-shading</exclude>
<exclude>com.google.code.findbugs:jsr305</exclude>
<exclude>org.slf4j:*</exclude>
<exclude>org.apache.logging.log4j:*</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<!-- Do not copy the signatures in the META-INF folder.
Otherwise, this might cause SecurityExceptions when using the JAR. -->
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.clickhouse.example.covid.DataStreamJob</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>

<pluginManagement>
<plugins>

<!-- This improves the out-of-the-box experience in Eclipse by resolving some warnings. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<versionRange>[3.1.1,)</versionRange>
<goals>
<goal>shade</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<versionRange>[3.1,)</versionRange>
<goals>
<goal>testCompile</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Loading
Loading