-
Notifications
You must be signed in to change notification settings - Fork 314
/
Copy pathdebezium-3.0.yaml
224 lines (206 loc) · 8.26 KB
/
debezium-3.0.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
package:
name: debezium-3.0
version: "3.0.8"
epoch: 1
description: Debezium is a change data capture (CDC) platform that achieves its durability, reliability, and fault tolerance qualities by reusing Kafka and Kafka Connect.
copyright:
- license: Apache-2.0
dependencies:
provides:
- debezium=${{package.full-version}}
environment:
contents:
packages:
- bash
- build-base
- busybox
- ca-certificates-bundle
- curl
- maven
- openjdk-21-default-jdk
environment:
JAVA_HOME: /usr/lib/jvm/java-21-openjdk
var-transforms:
- from: ${{package.version}}
match: ^(\d+\.\d+)\.\d+$
replace: "$1"
to: major-minor-version
pipeline:
- uses: git-checkout
with:
repository: https://github.com/debezium/debezium
tag: v${{package.version}}.Final
expected-commit: f896dc3e416c2d32e50700c826fc16e6aea8e4a4
data:
- name: connectors
items:
connector-jdbc: connector-jdbc
connector-mariadb: connector-mariadb
connector-mongodb: connector-mongodb
connector-mysql: connector-mysql
connector-postgres: connector-postgres
connector-sqlserver: connector-sqlserver
connect-rest-extension: connect-rest-extension
- name: components
items:
core: debezium-core
scripting: debezium-scripting/debezium-scripting
subpackages:
- range: connectors
name: ${{package.name}}-${{range.key}}
description: ${{range.key}}
dependencies:
provides:
- debezium-${{range.key}}=${{package.full-version}}
pipeline:
- name: Build
runs: |
./mvnw clean install -B -pl debezium-${{range.value}} -am -T$(nproc)C \
-Passembly \
-Dcheckstyle.skip=true \
-Dformat.skip=true \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
-Dmaven.wagon.http.pool=false \
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120 \
-Ddebezium.test.records.waittime=10 \
-DfailFlakyTests=false \
-Ddebezium.test.mongo.replica.primary.startup.timeout.seconds=120 \
-DskipITs=true -DskipTests=true -Dcheckstyle.skip=true -Dformat.skip=true -Drevapi.skip \
--no-transfer-progress \
--fail-fast
- name: Extract JARs
runs: |
component=debezium-${{range.key}}
dest="${{targets.contextdir}}/usr/share/java/debezium/${component}"
mkdir -p "$dest"
final_tar="${component}/target/${component}-${{ package.version }}.Final.tar.gz"
plugin_tar="${component}/target/${component}-${{ package.version }}.Final-plugin.tar.gz"
if [ -f "$final_tar" ]; then
tar -zxf "$final_tar" --strip-components=1 -C "$dest"
else
tar -zxf "$plugin_tar" --strip-components=1 -C "$dest"
fi
cp "${component}/target/${component}-${{ package.version }}.Final.jar" "$dest/${component}.jar"
- uses: strip
test:
environment:
contents:
packages:
- openjdk-21-default-jdk
pipeline:
- name: Verify JAR presence
runs: |
test -f /usr/share/java/debezium/debezium-${{range.key}}/debezium-${{range.key}}-${{package.version}}.Final.jar
- name: Validate JAR metadata
runs: |
jar tf /usr/share/java/debezium/debezium-${{range.key}}/debezium-${{range.key}}-${{package.version}}.Final.jar | grep -q "META-INF/MANIFEST.MF"
- name: ${{package.name}}-connectors-all
dependencies:
runtime:
- ${{package.name}}-connector-jdbc
- ${{package.name}}-connector-mariadb
- ${{package.name}}-connector-mongodb
- ${{package.name}}-connector-mysql
- ${{package.name}}-connector-postgres
- ${{package.name}}-connector-sqlserver
- debezium-connector-db2-${{vars.major-minor-version}}
- debezium-connector-ibmi-${{vars.major-minor-version}}
- debezium-connector-informix-${{vars.major-minor-version}}
- debezium-connector-spanner-${{vars.major-minor-version}}
- debezium-connector-vitess-${{vars.major-minor-version}}
provides:
- debezium-connectors-all=${{package.full-version}}
description: Virtual package that installs all Debezium connectors
- range: components
name: ${{package.name}}-${{range.key}}
description: ${{range.key}}
dependencies:
provides:
- debezium-${{range.key}}=${{package.full-version}}
pipeline:
- name: Build
runs: |
./mvnw clean install -B -ntp -f debezium-${{range.key}}/pom.xml -T$(nproc)C \
-am \
-DskipTests=true \
-DskipITs=true \
-Dcheckstyle.skip=true \
-Dformat.skip=true \
-Drevapi.skip \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
-Dmaven.wagon.http.pool=false \
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120 \
--no-transfer-progress \
--fail-fast
- name: Extract JARs
runs: |
component=debezium-${{range.key}}
dest="${{targets.contextdir}}/usr/share/java/debezium/${component}"
mkdir -p "$dest"
final_tar="${{range.value}}/target/${component}-${{package.version}}.Final.tar.gz"
plugin_tar="${{range.value}}/target/${component}-${{package.version}}.Final-plugin.tar.gz"
if [ -f "$final_tar" ]; then
tar -zxf "$final_tar" --strip-components=1 -C "$dest"
fi
if [ -f "$plugin_tar" ]; then
tar -zxf "$plugin_tar" --strip-components=1 -C "$dest"
fi
install -Dm644 "${{range.value}}/target/${component}-${{package.version}}.Final.jar" -t "$dest"
- uses: strip
test:
environment:
contents:
packages:
- openjdk-21-default-jdk
pipeline:
- name: Verify JAR presence
runs: |
test -f /usr/share/java/debezium/debezium-${{range.key}}/debezium-${{range.key}}-${{package.version}}.Final.jar
- name: Validate JAR metadata
runs: |
jar tf /usr/share/java/debezium/debezium-${{range.key}}/debezium-${{range.key}}-${{package.version}}.Final.jar | grep -q "META-INF/MANIFEST.MF"
- name: ${{package.name}}-components-all
dependencies:
runtime:
- ${{package.name}}-core
- ${{package.name}}-scripting
provides:
- debezium-components-all=${{package.full-version}}
description: Virtual package that installs all Debezium components
- name: debezium-connect-compat
description: "Compatibility package to place binaries in the location expected by upstream helm charts"
pipeline:
- name: Compat symlinks for connectors
runs: |
mkdir -p ${{targets.contextdir}}/$KAFKA_HOME/kafka/connect
for connector in debezium-connector-spanner debezium-connector-vitess debezium-connector-informix debezium-connector-ibmi debezium-connector-db2 debezium-connector-sqlserver debezium-connector-postgres debezium-connector-mysql debezium-connector-mongodb debezium-connector-mariadb debezium-connector-jdbc debezium-connector-oracle; do
ln -sf /usr/share/java/debezium/${connector} "${{targets.contextdir}}"/kafka/connect/${connector}
done
- name: Compat symlinks for external libs
runs: |
mkdir -p ${{targets.contextdir}}/$KAFKA_HOME/kafka/external_libs
for lib in debezium-connect-rest-extension debezium-scripting; do
ln -sf /usr/share/java/debezium/${lib} "${{targets.contextdir}}"/kafka/external_libs/${lib}
done
ln -sf /usr/share/java/apicurio-registry "${{targets.contextdir}}"/kafka/external_libs/apicurio
test:
pipeline:
- name: Check some symlinks
runs: |
stat /kafka/connect
stat /kafka/connect/debezium-connector-spanner
stat /kafka/external_libs
stat /kafka/external_libs/debezium-scripting
stat /kafka/external_libs/apicurio
update:
enabled: true
ignore-regex-patterns:
- "CR"
- "hotfix"
- "Beta"
github:
identifier: debezium/debezium
use-tag: true
tag-filter: v3.0.
strip-prefix: v
strip-suffix: .Final