DBZ-2002 Add IBMI connector to CI and release

This commit is contained in:
Jiri Pechanec 2024-03-05 14:50:22 +01:00
parent d0f0761ca7
commit dbb2434465
8 changed files with 155 additions and 5 deletions

View File

@ -0,0 +1,47 @@
name: "Build IBMi"
description: "Builds the Debezium IBMi connector"
inputs:
path-core:
description: "Debezium core repository checkout path"
required: true
path-ibmi:
description: "Debezium IBMi repository checkout path"
required: true
shell:
description: "The shell to use"
required: false
default: bash
runs:
using: "composite"
steps:
- name: Build Debezium (Core)
shell: ${{ inputs.shell }}
run: >
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-core }}/pom.xml
-pl debezium-assembly-descriptors,debezium-bom,debezium-core,debezium-embedded,:debezium-ide-configs,:debezium-checkstyle,:debezium-revapi
-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
- name: Build IBMi
shell: ${{ inputs.shell }}
run: >
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-ibmi }}/pom.xml
-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=5
-Ddebezium.test.records.waittime.after.nulls=5
-DfailFlakyTests=false
-DskipITs

View File

@ -480,6 +480,35 @@ jobs:
path-core: core path-core: core
path-db2: db2 path-db2: db2
build_ibmi:
name: "IBMi"
needs: [ check_style, file_changes ]
runs-on: ubuntu-latest
if: ${{ needs.file_changes.outputs.common-changed == 'true' }}
steps:
- name: Checkout Action (Debezium Core)
uses: actions/checkout@v4
with:
path: core
- name: Checkout Action (IBMi)
uses: actions/checkout@v4
with:
repository: debezium/debezium-connector-ibmi
path: ibmi
- uses: ./core/.github/actions/setup-java
- uses: ./core/.github/actions/maven-cache
with:
# We specifically only use the hash of the pom files from the core repository
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
- uses: ./core/.github/actions/build-debezium-ibmi
with:
path-core: core
path-ibmi: ibmi
# Approx 45m # Approx 45m
build_informix: build_informix:
name: "Informix" name: "Informix"
@ -627,4 +656,4 @@ jobs:
- uses: ./core/.github/actions/build-debezium-server - uses: ./core/.github/actions/build-debezium-server
with: with:
path-core: core path-core: core
path-server: server path-server: server

View File

@ -355,6 +355,34 @@ jobs:
path-core: core path-core: core
path-informix: informix path-informix: informix
build_ibmi:
name: "IBMi"
needs: [ check_style ]
runs-on: ubuntu-latest
steps:
- name: Checkout Action (Debezium Core)
uses: actions/checkout@v4
with:
path: core
- name: Checkout Action (IBMi)
uses: actions/checkout@v4
with:
repository: debezium/debezium-connector-ibmi
path: ibmi
- uses: ./core/.github/actions/setup-java
- uses: ./core/.github/actions/maven-cache
with:
# We specifically only use the hash of the pom files from the core repository
key: maven-debezium-test-push-build-${{ hashFiles('core/**/pom.xml') }}
- uses: ./core/.github/actions/build-debezium-ibmi
with:
path-core: core
path-ibmi: ibmi
# Approx 20m # Approx 20m
build_vitess: build_vitess:
name: "Vitess" name: "Vitess"

View File

@ -371,6 +371,52 @@ jobs:
-Ddebezium.test.records.waittime.after.nulls=5 -Ddebezium.test.records.waittime.after.nulls=5
-DfailFlakyTests=false -DfailFlakyTests=false
${{ matrix.feature.extra }} ${{ matrix.feature.extra }}
ibmi:
runs-on: ubuntu-latest
strategy:
matrix:
feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ]
fail-fast: false
name: IBMi - Java ${{ matrix.feature.release }}
steps:
- name: Checkout Core
uses: actions/checkout@v4
with:
path: core
- name: Checkout IBMi
uses: actions/checkout@v4
with:
repository: debezium/debezium-connector-ibmi
path: ibmi
- name: Setup OpenJDK
uses: oracle-actions/setup-java@v1
with:
website: jdk.java.net
release: ${{ matrix.feature.release }}
- name: Build Debezium Core
run: >
./core/mvnw clean install -f core/pom.xml
-DskipTests
-DskipITs
-Dformat.formatter.goal=validate
-Dformat.imports.goal=check
-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
${{ matrix.feature.extra }}
- name: Build Debezium Connector IBMi
run: >
./core/mvnw clean install -f ibmi/pom.xml
-Passembly ${{ matrix.feature.args }}
-Dformat.formatter.goal=validate
-Dformat.imports.goal=check
-Dhttp.keepAlive=false
-Dmaven.wagon.http.pool=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Ddebezium.test.records.waittime=5
-Ddebezium.test.records.waittime.after.nulls=5
-DfailFlakyTests=false
-DskipITs
${{ matrix.feature.extra }}
quarkus-outbox: quarkus-outbox:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:

View File

@ -27,7 +27,7 @@ pipelineJob('release/release-deploy_snapshots_pipeline') {
stringParam('DEBEZIUM_BRANCH', 'main', 'A branch from which Debezium is built') stringParam('DEBEZIUM_BRANCH', 'main', 'A branch from which Debezium is built')
stringParam( stringParam(
'DEBEZIUM_ADDITIONAL_REPOSITORIES', 'DEBEZIUM_ADDITIONAL_REPOSITORIES',
'db2#github.com/debezium/debezium-connector-db2.git#main vitess#github.com/debezium/debezium-connector-vitess.git#main cassandra#github.com/debezium/debezium-connector-cassandra.git#main spanner#github.com/debezium/debezium-connector-spanner.git#main jdbc#github.com/debezium/debezium-connector-jdbc.git#main informix#github.com/debezium/debezium-connector-informix.git#main server#github.com/debezium/debezium-server.git#main operator#github.com/debezium/debezium-operator.git#main', 'db2#github.com/debezium/debezium-connector-db2.git#main vitess#github.com/debezium/debezium-connector-vitess.git#main cassandra#github.com/debezium/debezium-connector-cassandra.git#main spanner#github.com/debezium/debezium-connector-spanner.git#main jdbc#github.com/debezium/debezium-connector-jdbc.git#main informix#github.com/debezium/debezium-connector-informix.git#main ibmi#github.com/debezium/debezium-connector-ibmi.git#main server#github.com/debezium/debezium-server.git#main operator#github.com/debezium/debezium-operator.git#main',
'A space separated list of additional repositories from which Debezium connectors are built (id#repo#branch)' 'A space separated list of additional repositories from which Debezium connectors are built (id#repo#branch)'
) )
} }

View File

@ -24,7 +24,7 @@ pipelineJob('release/release-debezium-upstream') {
stringParam('DEBEZIUM_BRANCH', 'main', 'A branch from which Debezium is built') stringParam('DEBEZIUM_BRANCH', 'main', 'A branch from which Debezium is built')
stringParam( stringParam(
'DEBEZIUM_ADDITIONAL_REPOSITORIES', 'DEBEZIUM_ADDITIONAL_REPOSITORIES',
'jdbc#github.com/debezium/debezium-connector-jdbc.git#main spanner#github.com/debezium/debezium-connector-spanner.git#main db2#github.com/debezium/debezium-connector-db2.git#main vitess#github.com/debezium/debezium-connector-vitess.git#main cassandra#github.com/debezium/debezium-connector-cassandra.git#main informix#github.com/debezium/debezium-connector-informix.git#main server#github.com/debezium/debezium-server.git#main operator#github.com/debezium/debezium-operator.git#main', 'jdbc#github.com/debezium/debezium-connector-jdbc.git#main spanner#github.com/debezium/debezium-connector-spanner.git#main db2#github.com/debezium/debezium-connector-db2.git#main vitess#github.com/debezium/debezium-connector-vitess.git#main cassandra#github.com/debezium/debezium-connector-cassandra.git#main informix#github.com/debezium/debezium-connector-informix.git#main ibmi#github.com/debezium/debezium-connector-ibmi.git#main server#github.com/debezium/debezium-server.git#main operator#github.com/debezium/debezium-operator.git#main',
'A space separated list of additional repositories from which Debezium incubating components are built (id#repo#branch)' 'A space separated list of additional repositories from which Debezium incubating components are built (id#repo#branch)'
) )
stringParam('IMAGES_REPOSITORY', 'github.com/debezium/container-images.git', 'Repository from which Debezium images are built') stringParam('IMAGES_REPOSITORY', 'github.com/debezium/container-images.git', 'Repository from which Debezium images are built')

View File

@ -82,7 +82,7 @@ CONNECTORS_PER_VERSION = [
'2.3' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc'], '2.3' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc'],
'2.4' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc'], '2.4' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc'],
'2.5' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc', 'informix'], '2.5' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc', 'informix'],
'2.6' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc', 'informix'] '2.6' : ['mongodb', 'mysql', 'postgres', 'sqlserver', 'oracle', 'cassandra-3', 'cassandra-4', 'db2', 'vitess', 'spanner', 'jdbc', 'informix', 'ibmi']
] ]
CONNECTORS = CONNECTORS_PER_VERSION[VERSION_MAJOR_MINOR] CONNECTORS = CONNECTORS_PER_VERSION[VERSION_MAJOR_MINOR]

View File

@ -10,7 +10,7 @@ ALIASES="jenkins-jobs/scripts/config/Aliases.txt"
declare -a DEBEZIUM_REPOS declare -a DEBEZIUM_REPOS
if [ $# -eq 0 ];then if [ $# -eq 0 ];then
DEBEZIUM_REPOS=("debezium" "debezium-connector-db2" "debezium-connector-cassandra" "debezium-connector-vitess" "debezium-connector-spanner" "debezium-connector-jdbc" "debezium-connector-informix" "container-images" "debezium-server") DEBEZIUM_REPOS=("debezium" "debezium-connector-db2" "debezium-connector-cassandra" "debezium-connector-vitess" "debezium-connector-spanner" "debezium-connector-jdbc" "debezium-connector-informix" "debezium-connector-ibmi" "container-images" "debezium-server")
else else
DEBEZIUM_REPOS=( "$@" ) DEBEZIUM_REPOS=( "$@" )
fi fi