Skip to content

Commit fadc1e8

Browse files
Merge branch 'master' into FLINK-37203
2 parents 6044593 + 8edc345 commit fadc1e8

861 files changed

Lines changed: 59386 additions & 22813 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/labeler.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,7 @@ oceanbase-pipeline-connector:
9393
- flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-oceanbase/**/*
9494
maxcompute-pipeline-connector:
9595
- flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-maxcompute/**/*
96+
iceberg-pipeline-connector:
97+
- flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-iceberg/**/*
98+
postgres-pipeline-connector:
99+
- flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-postgres/**/*

.github/workflows/build_docs.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
steps:
3838
- uses: actions/checkout@v3
3939
- name: Check dead links
40-
uses: gaurav-nelson/github-action-markdown-link-check@1.0.15
40+
uses: tcort/github-action-markdown-link-check@e7c7a18363c842693fadde5d41a3bd3573a7a225
4141
with:
4242
config-file: '.dlc.json'
4343
- name: Build doc
@@ -54,8 +54,8 @@ jobs:
5454
matrix:
5555
branch:
5656
- master
57-
- release-3.3
58-
- release-3.2
57+
- release-3.5
58+
- release-3.4
5959

6060
steps:
6161
- uses: actions/checkout@v3
@@ -69,8 +69,8 @@ jobs:
6969
echo "flink_branch=${currentBranch}" >> ${GITHUB_ENV}
7070
7171
if [ "${currentBranch}" = "master" ]; then
72-
echo "flink_alias=release-3.4" >> ${GITHUB_ENV}
73-
elif [ "${currentBranch}" = "release-3.3" ]; then
72+
echo "flink_alias=release-3.6" >> ${GITHUB_ENV}
73+
elif [ "${currentBranch}" = "release-3.5" ]; then
7474
echo "flink_alias=stable" >> ${GITHUB_ENV}
7575
fi
7676
@@ -84,7 +84,7 @@ jobs:
8484
docker run --rm --volume "$PWD:/root/flink-cdc" chesnay/flink-ci:java_8_11_17_21_maven_386 bash -c "cd /root/flink-cdc && chmod +x ./.github/workflows/docs.sh && ./.github/workflows/docs.sh"
8585
8686
- name: Upload documentation
87-
uses: burnett01/rsync-deployments@5.2
87+
uses: burnett01/rsync-deployments@0dc935cdecc5f5e571865e60d2a6cdc673704823
8888
with:
8989
switches: --archive --compress --delete
9090
path: docs/target/
@@ -96,7 +96,7 @@ jobs:
9696

9797
- name: Upload documentation alias
9898
if: env.flink_alias != ''
99-
uses: burnett01/rsync-deployments@5.2
99+
uses: burnett01/rsync-deployments@0dc935cdecc5f5e571865e60d2a6cdc673704823
100100
with:
101101
switches: --archive --compress --delete
102102
path: docs/target/

.github/workflows/flink_cdc_base.yml

Lines changed: 109 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@ name: Flink CDC Base Workflow
1818
on:
1919
workflow_call:
2020
inputs:
21-
java-version:
21+
java-versions:
2222
description: "Jdk versions to test against."
2323
required: false
2424
type: string
2525
default: "['8']"
26-
flink-version:
26+
flink-versions:
2727
description: "Flink versions to test against."
2828
required: false
2929
type: string
3030
default: "['generic']"
31-
module:
32-
description: "Flink CDC module to test against."
31+
modules:
32+
description: "Flink CDC modules to test against."
3333
required: true
3434
type: string
3535
parallelism:
@@ -48,27 +48,38 @@ env:
4848
flink-cdc-common,\
4949
flink-cdc-composer,\
5050
flink-cdc-runtime,\
51-
flink-cdc-connect/flink-cdc-source-connectors/flink-cdc-base"
51+
flink-cdc-connect/flink-cdc-source-connectors/flink-cdc-base,\
52+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-values"
5253

5354
MODULES_PIPELINE_CONNECTORS: "\
54-
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-values,\
55-
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-mysql,\
5655
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-doris,\
57-
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-starrocks,\
58-
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-kafka,\
59-
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-paimon,\
6056
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-elasticsearch,\
57+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-iceberg,\
58+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-kafka,\
59+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-maxcompute,\
60+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-mysql,\
6161
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-oceanbase,\
62-
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-maxcompute"
62+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-maxcompute,\
63+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-postgres,\
64+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-paimon,\
65+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-starrocks,\
66+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-fluss,\
67+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-values"
6368

64-
MODULES_MYSQL: "\
69+
MODULES_MYSQL_SOURCE: "\
6570
flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc,\
6671
flink-cdc-connect/flink-cdc-source-connectors/flink-sql-connector-mysql-cdc"
6772

68-
MODULES_POSTGRES: "\
73+
MODULES_MYSQL_PIPELINE: "\
74+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-mysql"
75+
76+
MODULES_POSTGRES_SOURCE: "\
6977
flink-cdc-connect/flink-cdc-source-connectors/flink-connector-postgres-cdc,\
7078
flink-cdc-connect/flink-cdc-source-connectors/flink-sql-connector-postgres-cdc"
7179

80+
MODULES_POSTGRES_PIPELINE: "\
81+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-postgres"
82+
7283
MODULES_ORACLE: "\
7384
flink-cdc-connect/flink-cdc-source-connectors/flink-connector-oracle-cdc,\
7485
flink-cdc-connect/flink-cdc-source-connectors/flink-sql-connector-oracle-cdc"
@@ -85,10 +96,13 @@ env:
8596
flink-cdc-connect/flink-cdc-source-connectors/flink-connector-tidb-cdc,\
8697
flink-cdc-connect/flink-cdc-source-connectors/flink-sql-connector-tidb-cdc"
8798

88-
MODULES_OCEANBASE: "\
99+
MODULES_OCEANBASE_SOURCE: "\
89100
flink-cdc-connect/flink-cdc-source-connectors/flink-connector-oceanbase-cdc,\
90101
flink-cdc-connect/flink-cdc-source-connectors/flink-sql-connector-oceanbase-cdc"
91102

103+
MODULES_OCEANBASE_PIPELINE: "\
104+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-oceanbase"
105+
92106
MODULES_DB2: "\
93107
flink-cdc-connect/flink-cdc-source-connectors/flink-connector-db2-cdc,\
94108
flink-cdc-connect/flink-cdc-source-connectors/flink-sql-connector-db2-cdc"
@@ -97,20 +111,46 @@ env:
97111
flink-cdc-connect/flink-cdc-source-connectors/flink-connector-vitess-cdc,\
98112
flink-cdc-connect/flink-cdc-source-connectors/flink-sql-connector-vitess-cdc"
99113

114+
MODULES_DORIS: "\
115+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-doris"
116+
117+
MODULES_STARROCKS: "\
118+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-starrocks"
119+
120+
MODULES_ICEBERG: "\
121+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-iceberg"
122+
123+
MODULES_KAFKA: "\
124+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-kafka"
125+
126+
MODULES_PAIMON: "\
127+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-paimon"
128+
129+
MODULES_ELASTICSEARCH: "\
130+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-elasticsearch"
131+
132+
MODULES_MAXCOMPUTE: "\
133+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-maxcompute"
134+
135+
MODULES_FLUSS: "\
136+
flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-fluss"
137+
100138
MODULES_PIPELINE_E2E: "\
101139
flink-cdc-e2e-tests/flink-cdc-pipeline-e2e-tests"
102140

103141
MODULES_SOURCE_E2E: "\
104142
flink-cdc-e2e-tests/flink-cdc-source-e2e-tests"
105143

106144
jobs:
107-
compile_and_test:
145+
test:
108146
runs-on: ubuntu-latest
109147
timeout-minutes: 120
110148
strategy:
149+
fail-fast: false
111150
matrix:
112-
java-version: ${{ fromJSON(inputs.java-version) }}
113-
flink-version: ${{ fromJSON(inputs.flink-version) }}
151+
java-version: ${{ fromJSON(inputs.java-versions) }}
152+
flink-version: ${{ fromJSON(inputs.flink-versions) }}
153+
module: ${{ fromJSON(inputs.modules) }}
114154
steps:
115155
- run: echo "Running CI pipeline for JDK version ${{ matrix.java-version }}"
116156
- name: Clean up disk space
@@ -150,28 +190,34 @@ jobs:
150190
- name: Compile and test
151191
timeout-minutes: 90
152192
run: |
193+
. .github/workflows/utils.sh
194+
jvm_timezone=$(random_timezone)
195+
echo "JVM timezone is set to $jvm_timezone"
153196
set -o pipefail
154197
155-
case ${{ inputs.module }} in
198+
case ${{ matrix.module }} in
156199
("core")
157200
modules=${{ env.MODULES_CORE }}
158201
;;
159-
("pipeline_connectors")
160-
modules=${{ env.MODULES_PIPELINE_CONNECTORS }}
202+
("mysql-source")
203+
modules=${{ env.MODULES_MYSQL_SOURCE }}
161204
;;
162-
("mysql")
163-
modules=${{ env.MODULES_MYSQL }}
205+
("mysql-pipeline")
206+
modules=${{ env.MODULES_MYSQL_PIPELINE }}
164207
;;
165-
("postgres")
166-
modules=${{ env.MODULES_POSTGRES }}
208+
("postgres-source")
209+
modules=${{ env.MODULES_POSTGRES_SOURCE }}
210+
;;
211+
("postgres-pipeline")
212+
modules=${{ env.MODULES_POSTGRES_PIPELINE }}
167213
;;
168214
("oracle")
169215
modules=${{ env.MODULES_ORACLE }}
170216
;;
171-
("mongodb6")
217+
("mongodb7")
172218
modules=${{ env.MODULES_MONGODB }}
173219
;;
174-
("mongodb7")
220+
("mongodb8")
175221
modules=${{ env.MODULES_MONGODB }}
176222
;;
177223
("sqlserver")
@@ -180,35 +226,62 @@ jobs:
180226
("tidb")
181227
modules=${{ env.MODULES_TIDB }}
182228
;;
183-
("oceanbase")
184-
modules=${{ env.MODULES_OCEANBASE }}
229+
("oceanbase-source")
230+
modules=${{ env.MODULES_OCEANBASE_SOURCE }}
231+
;;
232+
("oceanbase-pipeline")
233+
modules=${{ env.MODULES_OCEANBASE_PIPELINE }}
185234
;;
186235
("db2")
187236
modules=${{ env.MODULES_DB2 }}
188237
;;
189238
("vitess")
190239
modules=${{ env.MODULES_VITESS }}
191240
;;
241+
("doris")
242+
modules=${{ env.MODULES_DORIS }}
243+
;;
244+
("elasticsearch")
245+
modules=${{ env.MODULES_ELASTICSEARCH }}
246+
;;
247+
("iceberg")
248+
modules=${{ env.MODULES_ICEBERG }}
249+
;;
250+
("kafka")
251+
modules=${{ env.MODULES_KAFKA }}
252+
;;
253+
("maxcompute")
254+
modules=${{ env.MODULES_MAXCOMPUTE }}
255+
;;
256+
("paimon")
257+
modules=${{ env.MODULES_PAIMON }}
258+
;;
259+
("starrocks")
260+
modules=${{ env.MODULES_STARROCKS }}
261+
;;
262+
("fluss")
263+
modules=${{ env.MODULES_FLUSS }}
264+
;;
192265
("pipeline_e2e")
193-
compile_modules="${{ env.MODULES_CORE }},${{ env.MODULES_PIPELINE_CONNECTORS }},${{ env.MODULES_MYSQL }},${{ env.MODULES_POSTGRES }},${{ env.MODULES_ORACLE }},${{ env.MODULES_MONGODB }},${{ env.MODULES_SQLSERVER }},${{ env.MODULES_TIDB }},${{ env.MODULES_OCEANBASE }},${{ env.MODULES_DB2 }},${{ env.MODULES_VITESS }},${{ env.MODULES_PIPELINE_E2E }}"
266+
compile_modules="${{ env.MODULES_CORE }},${{ env.MODULES_PIPELINE_CONNECTORS }},${{ env.MODULES_MYSQL_SOURCE }},${{ env.MODULES_POSTGRES_SOURCE }},${{ env.MODULES_ORACLE }},${{ env.MODULES_MONGODB }},${{ env.MODULES_SQLSERVER }},${{ env.MODULES_TIDB }},${{ env.MODULES_OCEANBASE_SOURCE }},${{ env.MODULES_DB2 }},${{ env.MODULES_VITESS }},${{ env.MODULES_PIPELINE_E2E }}"
194267
modules=${{ env.MODULES_PIPELINE_E2E }}
195268
;;
196269
("source_e2e")
197-
compile_modules="${{ env.MODULES_CORE }},${{ env.MODULES_PIPELINE_CONNECTORS }},${{ env.MODULES_MYSQL }},${{ env.MODULES_POSTGRES }},${{ env.MODULES_ORACLE }},${{ env.MODULES_MONGODB }},${{ env.MODULES_SQLSERVER }},${{ env.MODULES_TIDB }},${{ env.MODULES_OCEANBASE }},${{ env.MODULES_DB2 }},${{ env.MODULES_VITESS }},${{ env.MODULES_SOURCE_E2E }}"
270+
compile_modules="${{ env.MODULES_CORE }},${{ env.MODULES_PIPELINE_CONNECTORS }},${{ env.MODULES_MYSQL_SOURCE }},${{ env.MODULES_POSTGRES_SOURCE }},${{ env.MODULES_ORACLE }},${{ env.MODULES_MONGODB }},${{ env.MODULES_SQLSERVER }},${{ env.MODULES_TIDB }},${{ env.MODULES_OCEANBASE_SOURCE }},${{ env.MODULES_DB2 }},${{ env.MODULES_VITESS }},${{ env.MODULES_SOURCE_E2E }}"
198271
modules=${{ env.MODULES_SOURCE_E2E }}
199272
;;
200273
esac
201274
202-
if [ ${{ inputs.module }} != "pipeline_e2e" ] && [ ${{ inputs.module }} != "source_e2e" ]; then
275+
if [ ${{ matrix.module }} != "pipeline_e2e" ] && [ ${{ matrix.module }} != "source_e2e" ]; then
203276
compile_modules=$modules
204277
fi
205278
206279
build_maven_parameter=""
207280
208-
if [ ${{ inputs.module }} == "mongodb6" ]; then
209-
build_maven_parameter="-DspecifiedMongoVersion=6.0.16"
210-
elif [ ${{ inputs.module }} == "mongodb7" ]; then
211-
build_maven_parameter="-DspecifiedMongoVersion=7.0.12"
281+
if [ ${{ matrix.module }} == "mongodb7" ]; then
282+
build_maven_parameter="-DspecifiedMongoVersion=7.0.24"
283+
elif [ ${{ matrix.module }} == "mongodb8" ]; then
284+
build_maven_parameter="-DspecifiedMongoVersion=8.0.14"
212285
fi
213286
214287
if [ ! -z "${{ matrix.flink-version }}" ]; then
@@ -217,7 +290,7 @@ jobs:
217290
218291
build_maven_parameter="${build_maven_parameter:+$build_maven_parameter }${{ inputs.custom-maven-parameter }}"
219292
220-
mvn --no-snapshot-updates -B -DskipTests -pl $compile_modules -am install && mvn --no-snapshot-updates -B $build_maven_parameter -pl $modules -DspecifiedParallelism=${{ inputs.parallelism }} verify
293+
mvn --no-snapshot-updates -B -DskipTests -pl $compile_modules -am install && mvn --no-snapshot-updates -B $build_maven_parameter -pl $modules -DspecifiedParallelism=${{ inputs.parallelism }} -Duser.timezone=$jvm_timezone verify
221294
222295
- name: Print JVM thread dumps when cancelled
223296
if: ${{ failure() }}

.github/workflows/flink_cdc_ci.yml

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,36 +57,40 @@ jobs:
5757
run: mvn --no-snapshot-updates -B package -DskipTests
5858
- name: Run license check
5959
run: gem install rubyzip -v 2.3.0 && ./tools/ci/license_check.rb
60-
ut:
61-
strategy:
62-
matrix:
63-
module: [ 'core', 'pipeline_connectors', 'mysql', 'postgres', 'oracle', 'mongodb6', 'mongodb7', 'sqlserver', 'tidb', 'oceanbase', 'db2', 'vitess' ]
64-
name: Unit Tests
60+
common:
61+
name: Common Unit Tests
62+
uses: ./.github/workflows/flink_cdc_base.yml
63+
with:
64+
java-versions: "[8]"
65+
modules: "['core']"
66+
pipeline-ut:
67+
name: Pipeline Unit Tests
6568
uses: ./.github/workflows/flink_cdc_base.yml
6669
with:
67-
java-version: "[8]"
68-
module: ${{ matrix.module }}
70+
java-versions: "[8]"
71+
modules: "['mysql-pipeline', 'postgres-pipeline', 'oceanbase-pipeline', 'doris', 'elasticsearch', 'iceberg', 'kafka', 'maxcompute', 'paimon', 'starrocks', 'fluss']"
72+
source-ut:
73+
name: Source Unit Tests
74+
uses: ./.github/workflows/flink_cdc_base.yml
75+
with:
76+
java-versions: "[8]"
77+
modules: "['mysql-source', 'postgres-source', 'oracle', 'mongodb7', 'mongodb8', 'sqlserver', 'tidb', 'oceanbase-source', 'db2', 'vitess']"
6978
pipeline_e2e:
7079
strategy:
80+
fail-fast: false
7181
matrix:
7282
parallelism: [ 1, 4 ]
7383
name: Pipeline E2E Tests (${{ matrix.parallelism }}-Parallelism)
7484
uses: ./.github/workflows/flink_cdc_base.yml
7585
with:
76-
java-version: "[8]"
77-
flink-version: "['1.19.1', '1.20.0']"
78-
module: pipeline_e2e
86+
java-versions: "[8]"
87+
flink-versions: "['1.19.3', '1.20.3']"
88+
modules: "['pipeline_e2e']"
7989
parallelism: ${{ matrix.parallelism }}
8090
source_e2e:
8191
name: Source E2E Tests
8292
uses: ./.github/workflows/flink_cdc_base.yml
8393
with:
84-
java-version: "[8]"
85-
flink-version: "['1.19.1', '1.20.0']"
86-
module: source_e2e
87-
migration_test:
88-
name: Migration Tests
89-
uses: ./.github/workflows/flink_cdc_migration_test_base.yml
90-
with:
91-
java-version: "[8]"
92-
flink-version: "['1.19.1', '1.20.0']"
94+
java-versions: "[8]"
95+
flink-versions: "['1.19.3', '1.20.3']"
96+
modules: "['source_e2e']"

0 commit comments

Comments
 (0)