[ci] GitHub Actions Rework (No Test Runs)
This commit is contained in:
parent
2d06d847c3
commit
c05b8cb08e
52
.github/actions/build-debezium-cassandra/action.yml
vendored
Normal file
52
.github/actions/build-debezium-cassandra/action.yml
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
name: "Build Cassandra"
|
||||||
|
description: "Builds the Debezium Cassandra connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
path-core:
|
||||||
|
description: "Debezium core repository checkout path"
|
||||||
|
required: true
|
||||||
|
path-cassandra:
|
||||||
|
description: "Debezium Cassandra 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: Install DSE dependency artifacts
|
||||||
|
working-directory: ${{ inputs.path-cassandra }}
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: sh ./install-artifacts.sh
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Cassandra
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-cassandra }}/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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
47
.github/actions/build-debezium-db2/action.yml
vendored
Normal file
47
.github/actions/build-debezium-db2/action.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: "Build Db2"
|
||||||
|
description: "Builds the Debezium Db2 connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
path-core:
|
||||||
|
description: "Debezium core repository checkout path"
|
||||||
|
required: true
|
||||||
|
path-db2:
|
||||||
|
description: "Debezium Db2 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
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Db2
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-db2 }}/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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
49
.github/actions/build-debezium-informix/action.yml
vendored
Normal file
49
.github/actions/build-debezium-informix/action.yml
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
name: "Build Informix"
|
||||||
|
description: "Builds the Debezium Informix connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
path-core:
|
||||||
|
description: "Debezium core repository checkout path"
|
||||||
|
required: true
|
||||||
|
path-informix:
|
||||||
|
description: "Debezium Informix 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
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Informix
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-informix }}/pom.xml
|
||||||
|
-Passembly,informix14
|
||||||
|
-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=true
|
||||||
|
-DskipTests=true
|
47
.github/actions/build-debezium-jdbc/action.yml
vendored
Normal file
47
.github/actions/build-debezium-jdbc/action.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: "Build JDBC"
|
||||||
|
description: "Builds the Debezium JDBC connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
path-core:
|
||||||
|
description: "Debezium core repository checkout path"
|
||||||
|
required: true
|
||||||
|
path-jdbc:
|
||||||
|
description: "Debezium JDBC 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
|
||||||
|
|
||||||
|
# Remove skipTests
|
||||||
|
- name: Build JDBC
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-jdbc }}/pom.xml
|
||||||
|
-Passembly
|
||||||
|
-DskipITs=true
|
||||||
|
-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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipTests=true
|
39
.github/actions/build-debezium-mariadb/action.yml
vendored
Normal file
39
.github/actions/build-debezium-mariadb/action.yml
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
name: "Build MariaDB"
|
||||||
|
description: "Builds the Debezium MariaDB connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
profile:
|
||||||
|
description: "The MariaDB build profile to use"
|
||||||
|
required: false
|
||||||
|
default: "mysql-ci"
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build MariaDB connector (MariaDB - ${{ inputs.profile }})
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connector-mysql -am
|
||||||
|
-Pmariadb,${{ inputs.profile }}
|
||||||
|
-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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
40
.github/actions/build-debezium-mongodb/action.yml
vendored
Normal file
40
.github/actions/build-debezium-mongodb/action.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
name: "Build MongoDB"
|
||||||
|
description: "Builds the Debezium MongoDB connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
version-mongo-server:
|
||||||
|
description: "The MongoDB server version to use"
|
||||||
|
required: false
|
||||||
|
default: "7.0"
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build MongoDB connector (MongoDB ${{ inputs.version-mongo-server }})
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connector-mongodb -am
|
||||||
|
-Passembly
|
||||||
|
-Dcheckstyle.skip=true
|
||||||
|
-Dformat.skip=true
|
||||||
|
-Dversion.mongo.server=${{ inputs.version-mongo-server }}
|
||||||
|
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||||
|
-Dmaven.wagon.http.pool=false
|
||||||
|
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
44
.github/actions/build-debezium-mysql/action.yml
vendored
Normal file
44
.github/actions/build-debezium-mysql/action.yml
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
name: "Build MySQL"
|
||||||
|
description: "Builds the Debezium MySQL connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
version-mysql-server:
|
||||||
|
description: "The MySQL server version to use"
|
||||||
|
required: false
|
||||||
|
default: "8.2"
|
||||||
|
profile:
|
||||||
|
description: "The MySQL build profile to use"
|
||||||
|
required: false
|
||||||
|
default: "mysql-ci"
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build MySQL connector (MySQL ${{ inputs.version-mysql-server }} - ${{ inputs.profile }})
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connector-mysql -am
|
||||||
|
-P${{ inputs.profile }}
|
||||||
|
-Dcheckstyle.skip=true
|
||||||
|
-Dformat.skip=true
|
||||||
|
-Dversion.mysql.server=${{ inputs.version-mysql-server }}
|
||||||
|
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||||
|
-Dmaven.wagon.http.pool=false
|
||||||
|
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
35
.github/actions/build-debezium-oracle/action.yml
vendored
Normal file
35
.github/actions/build-debezium-oracle/action.yml
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
name: "Build Oracle"
|
||||||
|
description: "Builds the Debezium Oracle connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# We intentionally do not run the integration tests here because the runner does not have adequate space
|
||||||
|
# for the docker container and pull requests are not permitted to fetch the container image.
|
||||||
|
- name: Build Oracle connector
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connector-oracle -am
|
||||||
|
-Pinfinispan-buffer,oracle-tests
|
||||||
|
-DskipITs=true
|
||||||
|
-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
|
||||||
|
-DfailFlakyTests=false
|
32
.github/actions/build-debezium-outbox/action.yml
vendored
Normal file
32
.github/actions/build-debezium-outbox/action.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
name: "Build Quarkus Outbox Extension"
|
||||||
|
description: "Builds the Debezium Quarkus Outbox Extension"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
- name: Build Quarkus Outbox Extension
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl :debezium-quarkus-outbox -am -amd
|
||||||
|
-Passembly
|
||||||
|
-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
|
40
.github/actions/build-debezium-postgres/action.yml
vendored
Normal file
40
.github/actions/build-debezium-postgres/action.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
name: "Build PostgreSQL"
|
||||||
|
description: "Builds the Debezium PostgreSQL connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
profile:
|
||||||
|
description: "The PostgreSQL build profile to use"
|
||||||
|
required: false
|
||||||
|
default: "assembly"
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build PostgreSQL connector (PostgreSQL - ${{ inputs.profile }})
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connector-postgres -am
|
||||||
|
-P${{ inputs.profile }}
|
||||||
|
-Ddebezium.test.records.waittime=5
|
||||||
|
-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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
33
.github/actions/build-debezium-rest-extension/action.yml
vendored
Normal file
33
.github/actions/build-debezium-rest-extension/action.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
name: "Build REST Extension"
|
||||||
|
description: "Builds the Debezium REST Extension"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build REST Extension
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connect-rest-extension -am
|
||||||
|
-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
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
33
.github/actions/build-debezium-schema-generator/action.yml
vendored
Normal file
33
.github/actions/build-debezium-schema-generator/action.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
name: "Build Schema Generator"
|
||||||
|
description: "Builds the Debezium Schema Generator"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Schema Generator
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-schema-generator -am
|
||||||
|
-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
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
46
.github/actions/build-debezium-server/action.yml
vendored
Normal file
46
.github/actions/build-debezium-server/action.yml
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
name: "Build Server"
|
||||||
|
description: "Builds the Debezium Server"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
path-core:
|
||||||
|
description: "Debezium core repository checkout path"
|
||||||
|
required: true
|
||||||
|
path-server:
|
||||||
|
description: "Debezium Server 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
|
||||||
|
-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
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Server
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./${{ inputs.path-core }}/mvnw clean install -B -ntp -fae -f ${{ inputs.path-server }}/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
|
||||||
|
-DskipNonCore
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipTests=true
|
||||||
|
-DskipITs=true
|
47
.github/actions/build-debezium-spanner/action.yml
vendored
Normal file
47
.github/actions/build-debezium-spanner/action.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: "Build Spanner"
|
||||||
|
description: "Builds the Debezium Spanner connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
path-core:
|
||||||
|
description: "Debezium core repository checkout path"
|
||||||
|
required: true
|
||||||
|
path-spanner:
|
||||||
|
description: "Debezium Spanner 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
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Spanner
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-spanner }}/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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
36
.github/actions/build-debezium-sqlserver/action.yml
vendored
Normal file
36
.github/actions/build-debezium-sqlserver/action.yml
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
name: "Build SQL Server"
|
||||||
|
description: "Builds the Debezium SQL Server connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build SQL Server connector
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connector-sqlserver -am
|
||||||
|
-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
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
64
.github/actions/build-debezium-storage/action.yml
vendored
Normal file
64
.github/actions/build-debezium-storage/action.yml
vendored
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
name: "Build Debezium Storage Module"
|
||||||
|
description: "Builds the Debezium Storage Module"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Required by storage module
|
||||||
|
- name: Build Debezium (Core)
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install
|
||||||
|
-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
|
||||||
|
|
||||||
|
# Required by storage module
|
||||||
|
- name: Build Debezium MySQL Connector
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-connector-mysql
|
||||||
|
-Passembly
|
||||||
|
-DskipTests=true
|
||||||
|
-DskipITs=true
|
||||||
|
-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
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Storage Module
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -f debezium-storage/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
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests
|
36
.github/actions/build-debezium-testing/action.yml
vendored
Normal file
36
.github/actions/build-debezium-testing/action.yml
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
name: "Build Debezium Testing Module"
|
||||||
|
description: "Builds the Debezium Testing Module"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Testing Module
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw clean install -B -pl debezium-testing,debezium-testing/debezium-testing-testcontainers -am
|
||||||
|
-Passembly
|
||||||
|
-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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
47
.github/actions/build-debezium-vitess/action.yml
vendored
Normal file
47
.github/actions/build-debezium-vitess/action.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: "Build Vitess"
|
||||||
|
description: "Builds the Debezium Vitess connector"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
path-core:
|
||||||
|
description: "Debezium core repository checkout path"
|
||||||
|
required: true
|
||||||
|
path-vitess:
|
||||||
|
description: "Debezium Vitess 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
|
||||||
|
|
||||||
|
# Remove skipITs/skipTests
|
||||||
|
- name: Build Vitess
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./${{ inputs.path-core }}/mvnw clean install -B -ntp -f ${{ inputs.path-vitess }}/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
|
||||||
|
-DfailFlakyTests=false
|
||||||
|
-DskipITs=true
|
||||||
|
-DskipTests=true
|
30
.github/actions/checkstyle-format/action.yml
vendored
Normal file
30
.github/actions/checkstyle-format/action.yml
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
name: "Checkstyle and Formatting"
|
||||||
|
description: "Performs checkstyle and formatting"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
maven-cache-key:
|
||||||
|
description: "The maven build cache key"
|
||||||
|
required: true
|
||||||
|
shell:
|
||||||
|
description: "The shell to use"
|
||||||
|
required: false
|
||||||
|
default: bash
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
- uses: ./.github/actions/maven-cache
|
||||||
|
with:
|
||||||
|
key: ${{ inputs.maven-cache-key }}
|
||||||
|
|
||||||
|
- name: "Checkstyle, Formatting, and Import Order Checks"
|
||||||
|
shell: ${{ inputs.shell }}
|
||||||
|
run: >
|
||||||
|
./mvnw -B -ntp process-sources checkstyle:checkstyle
|
||||||
|
-pl ${{ env.MAVEN_FULL_BUILD_PROJECTS }}
|
||||||
|
-Dformat.formatter.goal=validate
|
||||||
|
-Dformat.imports.goal=check
|
||||||
|
-Dorg.slf4j.simpleLogger.showDateTime=true
|
||||||
|
-Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-dd HH:mm:ss,SSS"
|
19
.github/actions/maven-cache/action.yml
vendored
Normal file
19
.github/actions/maven-cache/action.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
name: "Maven Cache"
|
||||||
|
description: "Restores the Maven ~/.m2/repository cache"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
key:
|
||||||
|
description: "The maven cache key to use"
|
||||||
|
required: true
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Cache Maven Repository
|
||||||
|
id: cache-check
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: ${{ inputs.key }}
|
||||||
|
restore-keys: ${{ inputs.key }}
|
||||||
|
|
22
.github/actions/setup-java/action.yml
vendored
Normal file
22
.github/actions/setup-java/action.yml
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
name: "Set up Java"
|
||||||
|
description: "Set up the desired version of Java"
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
distribution:
|
||||||
|
description: "The Java distribution to use"
|
||||||
|
required: false
|
||||||
|
default: "temurin"
|
||||||
|
java-version:
|
||||||
|
description: "The java version to install"
|
||||||
|
required: false
|
||||||
|
default: 17
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Set up Java ${{ inputs.java-version }}
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: ${{ inputs.distribution }}
|
||||||
|
java-version: ${{ inputs.java-version }}
|
||||||
|
|
630
.github/workflows/debezium-workflow-pr.yml
vendored
Normal file
630
.github/workflows/debezium-workflow-pr.yml
vendored
Normal file
@ -0,0 +1,630 @@
|
|||||||
|
name: Build Debezium (PR)
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- 1.*
|
||||||
|
- 2.*
|
||||||
|
|
||||||
|
env:
|
||||||
|
MAVEN_FULL_BUILD_PROJECTS: "\\!debezium-microbenchmark-oracle"
|
||||||
|
|
||||||
|
# Pushes to each pull request will trigger a cancellation of any existing push jobs for that pull request,
|
||||||
|
# and will restart the build based on the latest push data for that specific pull request.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref_name }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# This job is responsible for inspecting the changes in the repository and setting specific output variables
|
||||||
|
# that subsequent jobs can use to determine whether a particular job should be skipped or included.
|
||||||
|
file_changes:
|
||||||
|
name: "Detect repository changes"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
common-changed: ${{ steps.changed-files-common.outputs.any_changed }}
|
||||||
|
mongodb-changed: ${{ steps.changed-files-mongodb.outputs.any_changed }}
|
||||||
|
mysql-changed: ${{ steps.changed-files-mysql.outputs.any_changed }}
|
||||||
|
postgresql-changed: ${{ steps.changed-files-postgresql.outputs.any_changed }}
|
||||||
|
oracle-changed: ${{ steps.changed-files-oracle.outputs.any_changed }}
|
||||||
|
sqlserver-changed: ${{ steps.changed-files-sqlserver.outputs.any_changed }}
|
||||||
|
outbox-changed: ${{ steps.changed-files-outbox.outputs.any_changed }}
|
||||||
|
rest-extension-changed: ${{ steps.changed-files-rest-extension.outputs.any_changed }}
|
||||||
|
schema-generator-changed: ${{ steps.changed-files-schema-generator.outputs.any_changed }}
|
||||||
|
debezium-testing-changed: ${{ steps.changed-files-debezium-testing.outputs.any_changed }}
|
||||||
|
mysql-ddl-parser-changed: ${{ steps.changed-files-mysql-ddl-parser.outputs.any_changed }}
|
||||||
|
oracle-ddl-parser-changed: ${{ steps.changed-files-oracle-ddl-parser.outputs.any_changed }}
|
||||||
|
documentation-only-changed: ${{ steps.changed-files-documentation.outputs.only_changed }}
|
||||||
|
storage-only-changed: ${{ steps.changed-files-storage.outputs.only_changed }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Get modified files (Common)
|
||||||
|
id: changed-files-common
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
support/checkstyle/**
|
||||||
|
support/revapi/**
|
||||||
|
debezium-api/**
|
||||||
|
debezium-assembly-descriptors/**
|
||||||
|
debezium-core/**
|
||||||
|
debezium-embedded/**
|
||||||
|
debezium-revapi/**
|
||||||
|
debezium-ide-configs/**
|
||||||
|
debezium-parent/pom.xml
|
||||||
|
debezium-bom/pom.xml
|
||||||
|
debezium-storage/**
|
||||||
|
debezium-scripting/**
|
||||||
|
pom.xml
|
||||||
|
.mvn/**
|
||||||
|
.github/actions/**
|
||||||
|
.github/workflows/debezium-workflow-*.yml
|
||||||
|
|
||||||
|
- name: Get modified files (MongoDB)
|
||||||
|
id: changed-files-mongodb
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-connector-mongodb/**
|
||||||
|
|
||||||
|
- name: Get modified files (MySQL)
|
||||||
|
id: changed-files-mysql
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-connector-mysql/**
|
||||||
|
|
||||||
|
- name: Get modified files (PostgreSQL)
|
||||||
|
id: changed-files-postgresql
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-connector-postgres/**
|
||||||
|
|
||||||
|
- name: Get modified files (Oracle)
|
||||||
|
id: changed-files-oracle
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-connector-oracle/**
|
||||||
|
|
||||||
|
- name: Get modified files (SQL Server)
|
||||||
|
id: changed-files-sqlserver
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-connector-sqlserver/**
|
||||||
|
|
||||||
|
- name: Get modified files (Quarkus Outbox)
|
||||||
|
id: changed-files-outbox
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-quarkus-outbox/**
|
||||||
|
debezium-quarkus-outbox-common/**
|
||||||
|
debezium-quarkus-outbox-reactive/**
|
||||||
|
|
||||||
|
- name: Get modified files (REST Extension)
|
||||||
|
id: changed-files-rest-extension
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-connect-rest-extension/**
|
||||||
|
|
||||||
|
- name: Get modified files (Schema Generator)
|
||||||
|
id: changed-files-schema-generator
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-schema-generator/**
|
||||||
|
|
||||||
|
- name: Get modified files (Debezium Testing)
|
||||||
|
id: changed-files-debezium-testing
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-testing/**
|
||||||
|
|
||||||
|
- name: Get modified files (MySQL DDL parser)
|
||||||
|
id: changed-files-mysql-ddl-parser
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/**
|
||||||
|
debezium-ddl-parser/src/main/java/io/debezium/antlr/**
|
||||||
|
debezium-ddl-parser/src/test/resources/mysql/examples/**
|
||||||
|
|
||||||
|
- name: Get modified files (Oracle DDL parser)
|
||||||
|
id: changed-files-oracle-ddl-parser
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/**
|
||||||
|
debezium-ddl-parser/src/main/java/io/debezium/antlr/**
|
||||||
|
debezium-ddl-parser/src/main/java/io/debezium/ddl/parser/oracle/**
|
||||||
|
debezium-ddl-parser/src/test/resources/oracle/examples/**
|
||||||
|
|
||||||
|
- name: Get modified files (Documentation)
|
||||||
|
id: changed-files-documentation
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
documentation/**
|
||||||
|
|
||||||
|
- name: Get modified files (Storage)
|
||||||
|
id: changed-files-storage
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
debezium-storage/**
|
||||||
|
|
||||||
|
# Approx 1m
|
||||||
|
build_cache:
|
||||||
|
name: "Update Dependencies"
|
||||||
|
needs: [ file_changes ]
|
||||||
|
if: ${{ needs.file_changes.outputs.documentation-only-changed == 'false' }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Debezium Server)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-server
|
||||||
|
path: server
|
||||||
|
|
||||||
|
- uses: ./core/.github/actions/setup-java
|
||||||
|
|
||||||
|
# GitHub actions seem to struggle returning actions/cache cache-hit
|
||||||
|
# Directly use the cache action here to control whether to fetch dependencies
|
||||||
|
- id: maven-cache-check
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
||||||
|
restore-keys: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
||||||
|
|
||||||
|
# This step is responsible for pulling down artifacts
|
||||||
|
# Unfortunately due to the nature of how some of the maven workflows work, the only reliable way
|
||||||
|
# to guarantee fully seeding the maven cache is to run a full build. This step does not execute
|
||||||
|
# tests, formatting, checkstyle, nor import sorts.
|
||||||
|
#
|
||||||
|
# This check is conditioned so that if the cache-key was not found, we will execute this step.
|
||||||
|
# If the cache-key was found, this means we cannot update the cache and therefore we should
|
||||||
|
# not need to explicitly run this step. This should improve response of format/checkstyle
|
||||||
|
# errors to users faster.
|
||||||
|
#
|
||||||
|
# This job also explicitly excludes the "debezium-microbenchmark-oracle" module temporarily.
|
||||||
|
# There is a dependency on xstream.jar for this module that should be fixed and made to not
|
||||||
|
# be required so that the module can be built on GitHub Actions.
|
||||||
|
- name: Download dependencies (Core)
|
||||||
|
if: steps.maven-cache-check.outputs.cache-hit != 'true'
|
||||||
|
run: >
|
||||||
|
./core/mvnw -B -ntp clean install -f core/pom.xml
|
||||||
|
-pl ${{ env.MAVEN_FULL_BUILD_PROJECTS }}
|
||||||
|
-Dformat.skip=true
|
||||||
|
-Dcheckstyle.skip=true
|
||||||
|
-Dorg.slf4j.simpleLogger.showDateTime=true
|
||||||
|
-Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-dd HH:mm:ss,SSS"
|
||||||
|
-DskipTests=true
|
||||||
|
-DskipITs=true
|
||||||
|
|
||||||
|
- name: Download dependencies (Debezium Server)
|
||||||
|
if: steps.maven-cache-check.outputs.cache-hit != 'true'
|
||||||
|
run: >
|
||||||
|
./server/mvnw -B -ntp clean install -f server/pom.xml
|
||||||
|
-Dformat.skip=true
|
||||||
|
-Dcheckstyle.skip=true
|
||||||
|
-Dorg.slf4j.simpleLogger.showDateTime=true
|
||||||
|
-Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-dd HH:mm:ss,SSS"
|
||||||
|
-DskipTests=true
|
||||||
|
-DskipITs=true
|
||||||
|
|
||||||
|
# Approx 1m
|
||||||
|
check_style:
|
||||||
|
name: "Checkstyle and Formatting"
|
||||||
|
needs: [ build_cache ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/checkstyle-format
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
build_mongodb:
|
||||||
|
strategy:
|
||||||
|
# Runs each combination concurrently
|
||||||
|
matrix:
|
||||||
|
version-mongo-server: [ "5.0", "7.0" ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "MongoDB ${{ matrix.version-mongo-server }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mongodb-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-mongodb
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
version-mongo-server: ${{ matrix.version-mongo-server }}
|
||||||
|
|
||||||
|
# Approx 40m each
|
||||||
|
build_mysql:
|
||||||
|
strategy:
|
||||||
|
# Runs each combination concurrently
|
||||||
|
matrix:
|
||||||
|
profile: [ "mysql-ci", "mysql-ci-gtids", "mysql-ci-percona", "mysql-ci-ssl" ]
|
||||||
|
version-mysql-server: [ "8.0", "8.2" ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "MySQL ${{ matrix.version-mysql-server }} - ${{ matrix.profile }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-mysql
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
version-mysql-server: ${{ matrix.version-mysql-server }}
|
||||||
|
profile: ${{ matrix.profile }}
|
||||||
|
|
||||||
|
# Approx 40m each
|
||||||
|
build_mariadb:
|
||||||
|
strategy:
|
||||||
|
# Runs each combination concurrently
|
||||||
|
matrix:
|
||||||
|
profile: [ 'mysql-ci', 'mysql-ci-gtids' ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "MariaDB - ${{ matrix.profile }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-mariadb
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
profile: ${{ matrix.profile }}
|
||||||
|
|
||||||
|
# Approx 40m each
|
||||||
|
build_postgresql:
|
||||||
|
strategy:
|
||||||
|
# Runs each combination concurrently
|
||||||
|
matrix:
|
||||||
|
profile: [ "assembly", "assembly,postgres-16,pgoutput-decoder" ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "PostgreSQL - ${{ matrix.profile }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.postgresql-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-postgres
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
profile: ${{ matrix.profile }}
|
||||||
|
|
||||||
|
# Approx 1h 45m
|
||||||
|
build_sqlserver:
|
||||||
|
name: "SQL Server"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.sqlserver-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-sqlserver
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 6m
|
||||||
|
build_oracle:
|
||||||
|
name: "Oracle"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.oracle-changed == 'true' || needs.file_changes.outputs.oracle-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-oracle
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 2m
|
||||||
|
build_outbox:
|
||||||
|
name: "Quarkus Outbox Extension"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.outbox-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-outbox
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 5m
|
||||||
|
build_rest_extension:
|
||||||
|
name: "REST Extension"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.rest-extension-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-rest-extension
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 2m
|
||||||
|
build_schema_generator:
|
||||||
|
name: "Schema Generator"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-schema-generator
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 5m
|
||||||
|
build_debezium_testing:
|
||||||
|
name: "Testing Module"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-testing
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 3m
|
||||||
|
build_storage:
|
||||||
|
name: "Storage Module"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.storage-changed == 'true' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-storage
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 25m
|
||||||
|
build_cassandra:
|
||||||
|
name: "Cassandra"
|
||||||
|
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 (Cassandra)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-cassandra
|
||||||
|
path: cassandra
|
||||||
|
|
||||||
|
- 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-cassandra
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-cassandra: cassandra
|
||||||
|
|
||||||
|
# Approx 1h
|
||||||
|
build_db2:
|
||||||
|
name: "Db2"
|
||||||
|
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 (Db2)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-db2
|
||||||
|
path: db2
|
||||||
|
|
||||||
|
- 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-db2
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-db2: db2
|
||||||
|
|
||||||
|
# Approx 45m
|
||||||
|
build_informix:
|
||||||
|
name: "Informix"
|
||||||
|
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 (Informix)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-informix
|
||||||
|
path: informix
|
||||||
|
|
||||||
|
- 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-informix
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-informix: informix
|
||||||
|
|
||||||
|
# Approx 20m
|
||||||
|
build_vitess:
|
||||||
|
name: "Vitess"
|
||||||
|
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 (Vitess)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-vitess
|
||||||
|
path: vitess
|
||||||
|
|
||||||
|
- 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-vitess
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-vitess: vitess
|
||||||
|
|
||||||
|
# Approx 7m
|
||||||
|
build_spanner:
|
||||||
|
name: "Spanner"
|
||||||
|
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 (Spanner)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-spanner
|
||||||
|
path: spanner
|
||||||
|
|
||||||
|
- 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-spanner
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-spanner: spanner
|
||||||
|
|
||||||
|
# Approx 1m
|
||||||
|
build_jdbc:
|
||||||
|
name: "JDBC"
|
||||||
|
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 (JDBC)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-jdbc
|
||||||
|
path: jdbc
|
||||||
|
|
||||||
|
- 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-jdbc
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-jdbc: jdbc
|
||||||
|
|
||||||
|
build_debezium_server:
|
||||||
|
name: "Debezium Server"
|
||||||
|
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 (Debezium Server)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-server
|
||||||
|
path: server
|
||||||
|
|
||||||
|
- 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-server
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-server: server
|
496
.github/workflows/debezium-workflow-push.yml
vendored
Normal file
496
.github/workflows/debezium-workflow-push.yml
vendored
Normal file
@ -0,0 +1,496 @@
|
|||||||
|
name: Build Debezium (Push)
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- 1.*
|
||||||
|
- 2.*
|
||||||
|
|
||||||
|
env:
|
||||||
|
MAVEN_FULL_BUILD_PROJECTS: "\\!debezium-microbenchmark-oracle"
|
||||||
|
|
||||||
|
# Pushes to each branch will trigger a cancellation of any existing push jobs for that branch and
|
||||||
|
# will restart the build based on the latest push for that specific branch.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref_name }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# Approx 1m
|
||||||
|
file_changes:
|
||||||
|
name: "Detect changes"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
documentation-only-changed: ${{ steps.changed-files-documentation.outputs.only_changed }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Get modified files (Documentation)
|
||||||
|
id: changed-files-documentation
|
||||||
|
uses: tj-actions/changed-files@v42.0.5
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
documentation/**
|
||||||
|
|
||||||
|
# Approx 1m
|
||||||
|
build_cache:
|
||||||
|
name: "Update Dependencies"
|
||||||
|
needs: [ file_changes ]
|
||||||
|
if: ${{ needs.file_changes.outputs.documentation-only-changed == 'false' }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Debezium Server)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-server
|
||||||
|
path: server
|
||||||
|
|
||||||
|
- uses: ./.github/actions/setup-java
|
||||||
|
|
||||||
|
# GitHub actions seem to struggle returning actions/cache cache-hit
|
||||||
|
# Directly use the cache action here to control whether to fetch dependencies
|
||||||
|
- id: maven-cache-check
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: maven-debezium-test-push-build-${{ hashFiles('core/**/pom.xml') }}
|
||||||
|
restore-keys: maven-debezium-test-push-build-${{ hashFiles('core/**/pom.xml') }}
|
||||||
|
|
||||||
|
# This step is responsible for pulling down artifacts
|
||||||
|
# Unfortunately due to the nature of how some of the maven workflows work, the only reliable way
|
||||||
|
# to guarantee fully seeding the maven cache is to run a full build. This step does not execute
|
||||||
|
# tests, formatting, checkstyle, nor import sorts.
|
||||||
|
#
|
||||||
|
# This check is conditioned so that if the cache-key was not found, we will execute this step.
|
||||||
|
# If the cache-key was found, this means we cannot update the cache and therefore we should
|
||||||
|
# not need to explicitly run this step. This should improve response of format/checkstyle
|
||||||
|
# errors to users faster.
|
||||||
|
#
|
||||||
|
# This job also explicitly excludes the "debezium-microbenchmark-oracle" module temporarily.
|
||||||
|
# There is a dependency on xstream.jar for this module that should be fixed and made to not
|
||||||
|
# be required so that the module can be built on GitHub Actions.
|
||||||
|
- name: Download dependencies (Core)
|
||||||
|
if: steps.maven-cache-check.outputs.cache-hit != 'true'
|
||||||
|
run: >
|
||||||
|
./mvnw -B -ntp clean install -f core/pom.xml
|
||||||
|
-pl ${{ env.MAVEN_FULL_BUILD_PROJECTS }}
|
||||||
|
-Dformat.skip=true
|
||||||
|
-Dcheckstyle.skip=true
|
||||||
|
-Dorg.slf4j.simpleLogger.showDateTime=true
|
||||||
|
-Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-dd HH:mm:ss,SSS"
|
||||||
|
-DskipTests=true
|
||||||
|
-DskipITs=true
|
||||||
|
|
||||||
|
- name: Download dependencies (Debezium Server)
|
||||||
|
if: steps.maven-cache-check.outputs.cache-hit != 'true'
|
||||||
|
run: >
|
||||||
|
./server/mvnw -B -ntp clean install -f server/pom.xml
|
||||||
|
-Dformat.skip=true
|
||||||
|
-Dcheckstyle.skip=true
|
||||||
|
-Dorg.slf4j.simpleLogger.showDateTime=true
|
||||||
|
-Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-dd HH:mm:ss,SSS"
|
||||||
|
-DskipTests=true
|
||||||
|
-DskipITs=true
|
||||||
|
|
||||||
|
# Approx 1m
|
||||||
|
check_style:
|
||||||
|
name: "Checkstyle and Formatting"
|
||||||
|
needs: [ build_cache ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/checkstyle-format
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 40m each
|
||||||
|
build_mongodb:
|
||||||
|
strategy:
|
||||||
|
# Run each MongoDB job sequentially
|
||||||
|
max-parallel: 1
|
||||||
|
matrix:
|
||||||
|
version-mongo-server: [ "5.0", "7.0" ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "MongoDB ${{ matrix.version-mongo-server }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-mongodb
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
version-mongo-server: ${{ matrix.version-mongo-server }}
|
||||||
|
|
||||||
|
# Approx 40m each
|
||||||
|
build_mysql:
|
||||||
|
strategy:
|
||||||
|
# Run 2 matrix jobs concurrently
|
||||||
|
max-parallel: 2
|
||||||
|
matrix:
|
||||||
|
profile: [ "mysql-ci", "mysql-ci-gtids", "mysql-ci-percona", "mysql-ci-ssl" ]
|
||||||
|
version-mysql-server: [ "8.0", "8.2" ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "MySQL ${{ matrix.version-mysql-server }} - ${{ matrix.profile }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-mysql
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
version-mysql-server: ${{ matrix.version-mysql-server }}
|
||||||
|
profile: ${{ matrix.profile }}
|
||||||
|
|
||||||
|
# Approx 40m each
|
||||||
|
build_mariadb:
|
||||||
|
strategy:
|
||||||
|
# Run each MariaDB job sequentially
|
||||||
|
max-parallel: 1
|
||||||
|
matrix:
|
||||||
|
profile: [ "mysql-ci", "mysql-ci-gtids" ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "MariaDB - ${{ matrix.profile }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-mariadb
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
profile: ${{ matrix.profile }}
|
||||||
|
|
||||||
|
# Approx 40m each
|
||||||
|
build_postgres:
|
||||||
|
strategy:
|
||||||
|
# Run each PostgreSQL job sequentially
|
||||||
|
max-parallel: 1
|
||||||
|
matrix:
|
||||||
|
profile: [ "assembly", "assembly,postgres-16,pgoutput-decoder" ]
|
||||||
|
fail-fast: false
|
||||||
|
name: "PostgreSQL - ${{ matrix.profile }}"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-postgres
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
profile: ${{ matrix.profile }}
|
||||||
|
|
||||||
|
# Approx 1h 45m
|
||||||
|
build_sqlserver:
|
||||||
|
name: "SQL Server"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-sqlserver
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 6m
|
||||||
|
build_oracle:
|
||||||
|
name: "Oracle"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-oracle
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 2m
|
||||||
|
build_outbox:
|
||||||
|
name: "Quarkus Outbox Extension"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-outbox
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 5m
|
||||||
|
build_rest_extension:
|
||||||
|
name: "REST Extension"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-rest-extension
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 2m
|
||||||
|
build_schema_generator:
|
||||||
|
name: "Schema Generator"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-schema-generator
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 5m
|
||||||
|
build_debezium_testing:
|
||||||
|
name: "Testing Module"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-testing
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 3m
|
||||||
|
build_storage:
|
||||||
|
name: "Storage Module"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: ./.github/actions/build-debezium-storage
|
||||||
|
with:
|
||||||
|
maven-cache-key: maven-debezium-test-push-build-${{ hashFiles('**/pom.xml') }}
|
||||||
|
|
||||||
|
# Approx 25m
|
||||||
|
build_cassandra:
|
||||||
|
name: "Cassandra"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Debezium Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Cassandra)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-cassandra
|
||||||
|
path: cassandra
|
||||||
|
|
||||||
|
- 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-cassandra
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-cassandra: cassandra
|
||||||
|
|
||||||
|
# Approx 1h
|
||||||
|
build_db2:
|
||||||
|
name: "Db2"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Debezium Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Db2)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-db2
|
||||||
|
path: db2
|
||||||
|
|
||||||
|
- 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-db2
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-db2: db2
|
||||||
|
|
||||||
|
# Approx 45m
|
||||||
|
build_informix:
|
||||||
|
name: "Informix"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Debezium Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Informix)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-informix
|
||||||
|
path: informix
|
||||||
|
|
||||||
|
- 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-informix
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-informix: informix
|
||||||
|
|
||||||
|
# Approx 20m
|
||||||
|
build_vitess:
|
||||||
|
name: "Vitess"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Debezium Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Vitess)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-vitess
|
||||||
|
path: vitess
|
||||||
|
|
||||||
|
- 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-vitess
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-vitess: vitess
|
||||||
|
|
||||||
|
# Approx 7m
|
||||||
|
build_spanner:
|
||||||
|
name: "Spanner"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Debezium Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Spanner)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-spanner
|
||||||
|
path: spanner
|
||||||
|
|
||||||
|
- 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-spanner
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-spanner: spanner
|
||||||
|
|
||||||
|
# Approx 1m
|
||||||
|
build_jdbc:
|
||||||
|
name: "JDBC"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Debezium Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (JDBC)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-connector-jdbc
|
||||||
|
path: jdbc
|
||||||
|
|
||||||
|
- 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-jdbc
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-jdbc: jdbc
|
||||||
|
|
||||||
|
# Approx 26m
|
||||||
|
build_server:
|
||||||
|
name: "Debezium Server"
|
||||||
|
needs: [ check_style, file_changes ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Action (Debezium Core)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
path: core
|
||||||
|
|
||||||
|
- name: Checkout Action (Server)
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: debezium/debezium-server
|
||||||
|
path: server
|
||||||
|
|
||||||
|
- 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-server
|
||||||
|
with:
|
||||||
|
path-core: core
|
||||||
|
path-server: server
|
||||||
|
|
||||||
|
|
||||||
|
|
1112
.github/workflows/debezium-workflow.yml
vendored
1112
.github/workflows/debezium-workflow.yml
vendored
@ -1,1112 +0,0 @@
|
|||||||
name: Build Debezium
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- 1.*
|
|
||||||
- 2.*
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- 1.*
|
|
||||||
- 2.*
|
|
||||||
|
|
||||||
env:
|
|
||||||
MAVEN_FULL_BUILD_PROJECTS: "\\!debezium-microbenchmark-oracle"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# This job is responsible for inspecting the changes in the repository and setting specific output variables
|
|
||||||
# that subsequent jobs can use to determine whether a particular job should be skipped or included.
|
|
||||||
file_changes:
|
|
||||||
name: "Detect repository changes"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
common-changed: ${{ steps.changed-files-common.outputs.any_changed }}
|
|
||||||
mongodb-changed: ${{ steps.changed-files-mongodb.outputs.any_changed }}
|
|
||||||
mysql-changed: ${{ steps.changed-files-mysql.outputs.any_changed }}
|
|
||||||
postgresql-changed: ${{ steps.changed-files-postgresql.outputs.any_changed }}
|
|
||||||
oracle-changed: ${{ steps.changed-files-oracle.outputs.any_changed }}
|
|
||||||
sqlserver-changed: ${{ steps.changed-files-sqlserver.outputs.any_changed }}
|
|
||||||
outbox-changed: ${{ steps.changed-files-outbox.outputs.any_changed }}
|
|
||||||
rest-extension-changed: ${{ steps.changed-files-rest-extension.outputs.any_changed }}
|
|
||||||
schema-generator-changed: ${{ steps.changed-files-schema-generator.outputs.any_changed }}
|
|
||||||
debezium-testing-changed: ${{ steps.changed-files-debezium-testing.outputs.any_changed }}
|
|
||||||
mysql-ddl-parser-changed: ${{ steps.changed-files-mysql-ddl-parser.outputs.any_changed }}
|
|
||||||
oracle-ddl-parser-changed: ${{ steps.changed-files-oracle-ddl-parser.outputs.any_changed }}
|
|
||||||
documentation-only-changed: ${{ steps.changed-files-documentation.outputs.only_changed}}
|
|
||||||
storage-only-changed: ${{ steps.changed-files-storage.outputs.only_changed}}
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Get modified files (Common)
|
|
||||||
id: changed-files-common
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
support/checkstyle/**
|
|
||||||
debezium-api/**
|
|
||||||
debezium-assembly-descriptors/**
|
|
||||||
debezium-core/**
|
|
||||||
debezium-embedded/**
|
|
||||||
debezium-revapi/**
|
|
||||||
debezium-ide-configs/**
|
|
||||||
debezium-parent/pom.xml
|
|
||||||
debezium-bom/pom.xml
|
|
||||||
debezium-storage/**
|
|
||||||
pom.xml
|
|
||||||
.github/workflows/debezium-workflow.yml
|
|
||||||
|
|
||||||
- name: Get modified files (MongoDB)
|
|
||||||
id: changed-files-mongodb
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-connector-mongodb/**
|
|
||||||
|
|
||||||
- name: Get modified files (MySQL)
|
|
||||||
id: changed-files-mysql
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-connector-mysql/**
|
|
||||||
|
|
||||||
- name: Get modified files (PostgreSQL)
|
|
||||||
id: changed-files-postgresql
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-connector-postgres/**
|
|
||||||
|
|
||||||
- name: Get modified files (Oracle)
|
|
||||||
id: changed-files-oracle
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-connector-oracle/**
|
|
||||||
|
|
||||||
- name: Get modified files (SQL Server)
|
|
||||||
id: changed-files-sqlserver
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-connector-sqlserver/**
|
|
||||||
|
|
||||||
- name: Get modified files (Quarkus Outbox)
|
|
||||||
id: changed-files-outbox
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-quarkus-outbox/**
|
|
||||||
|
|
||||||
- name: Get modified files (REST Extension)
|
|
||||||
id: changed-files-rest-extension
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-connect-rest-extension/**
|
|
||||||
support/checkstyle/**
|
|
||||||
debezium-parent/pom.xml
|
|
||||||
debezium-bom/pom.xml
|
|
||||||
pom.xml
|
|
||||||
.github/workflows/debezium-workflow.yml
|
|
||||||
|
|
||||||
- name: Get modified files (Schema Generator)
|
|
||||||
id: changed-files-schema-generator
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-schema-generator/**
|
|
||||||
support/checkstyle/**
|
|
||||||
debezium-parent/pom.xml
|
|
||||||
debezium-bom/pom.xml
|
|
||||||
pom.xml
|
|
||||||
.github/workflows/debezium-workflow.yml
|
|
||||||
|
|
||||||
- name: Get modified files (Debezium Testing)
|
|
||||||
id: changed-files-debezium-testing
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-testing/**
|
|
||||||
|
|
||||||
- name: Get modified files (MySQL DDL parser)
|
|
||||||
id: changed-files-mysql-ddl-parser
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/**
|
|
||||||
debezium-ddl-parser/src/main/java/io/debezium/antlr/**
|
|
||||||
debezium-ddl-parser/src/test/resources/mysql/examples/**
|
|
||||||
|
|
||||||
- name: Get modified files (Oracle DDL parser)
|
|
||||||
id: changed-files-oracle-ddl-parser
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/**
|
|
||||||
debezium-ddl-parser/src/main/java/io/debezium/antlr/**
|
|
||||||
debezium-ddl-parser/src/main/java/io/debezium/ddl/parser/oracle/**
|
|
||||||
debezium-ddl-parser/src/test/resources/oracle/examples/**
|
|
||||||
|
|
||||||
- name: Get modified files (Documentation)
|
|
||||||
id: changed-files-documentation
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
documentation/**
|
|
||||||
|
|
||||||
- name: Get modified files (Storage)
|
|
||||||
id: changed-files-storage
|
|
||||||
uses: tj-actions/changed-files@v42.0.5
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
debezium-storage/**
|
|
||||||
|
|
||||||
build_cache:
|
|
||||||
name: "Dependency Cache"
|
|
||||||
needs: [file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.documentation-only-changed == 'false' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
id: maven-cache-check
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
# This step is responsible for pulling down artifacts
|
|
||||||
# Unfortunately due to the nature of how some of the maven workflows work, the only reliable way
|
|
||||||
# to guarantee fully seeding the maven cache is to run a full build. This step does not execute
|
|
||||||
# tests, formatting, checkstyle, nor import sorts.
|
|
||||||
#
|
|
||||||
# This check is conditioned so that if the cache-key was not found, we will execute this step.
|
|
||||||
# If the cache-key was found, this means we cannot update the cache and therefore we should
|
|
||||||
# not need to explicitly run this step. This should improve response of format/checkstyle
|
|
||||||
# errors to users faster.
|
|
||||||
#
|
|
||||||
# This job also explicitly excludes the "debezium-microbenchmark-oracle" module temporarily.
|
|
||||||
# There is a dependency on xstream.jar for this module that should be fixed and made to not
|
|
||||||
# be required so that the module can be built on GitHub Actions.
|
|
||||||
- name: Download dependencies
|
|
||||||
if: steps.maven-cache-check.outputs.cache-hit != 'true'
|
|
||||||
run: >
|
|
||||||
./mvnw -B -ntp clean install
|
|
||||||
-pl ${{ env.MAVEN_FULL_BUILD_PROJECTS }}
|
|
||||||
-Dformat.skip=true
|
|
||||||
-Dcheckstyle.skip=true
|
|
||||||
-Dorg.slf4j.simpleLogger.showDateTime=true
|
|
||||||
-Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-DD HH:mm:ss,SSS"
|
|
||||||
-DskipTests=true
|
|
||||||
-DskipITs=true
|
|
||||||
|
|
||||||
check_style:
|
|
||||||
name: "Checkstyle and Formatting"
|
|
||||||
needs: [build_cache]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
id: maven-cache-check
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
# Since we do a complete build conditionally above, we should always either be able to rely on the
|
|
||||||
# build step to have installed all needed artifacts or the artifacts that exist from a prior run
|
|
||||||
# in order to satisfy dependencies for the format, checkstyle, and import sort checks. If the
|
|
||||||
# dependencies change, a new cache should be generated and a full build step executed, so this
|
|
||||||
# should always work successfully.
|
|
||||||
- name: Checkstyle, Formatting, and Import Order Checks
|
|
||||||
run: >
|
|
||||||
./mvnw -B -ntp process-sources checkstyle:checkstyle
|
|
||||||
-pl ${{ env.MAVEN_FULL_BUILD_PROJECTS }}
|
|
||||||
-Dformat.formatter.goal=validate
|
|
||||||
-Dformat.imports.goal=check
|
|
||||||
-Dorg.slf4j.simpleLogger.showDateTime=true
|
|
||||||
-Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-DD HH:mm:ss,SSS"
|
|
||||||
|
|
||||||
build_mongodb:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mongodb-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
name: "MongoDB"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
version-mongo-server: ["5.0", "6.0", "7.0"]
|
|
||||||
fail-fast: false
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium Connector MongoDB (Mode ${{ matrix.capture-mode }})
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-mongodb -am -Passembly
|
|
||||||
-Dcheckstyle.skip=true
|
|
||||||
-Dformat.skip=true
|
|
||||||
-Drevapi.skip
|
|
||||||
-Dversion.mongo.server=${{ matrix.version-mongo-server }}
|
|
||||||
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
|
||||||
-Dmaven.wagon.http.pool=false
|
|
||||||
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_mysql_8_0:
|
|
||||||
needs: [ check_style, file_changes ]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
profile: [ 'mysql-ci', 'mysql-ci-gtids', 'mysql-ci-percona', 'mysql-ci-ssl' ]
|
|
||||||
name: "MySQL 8.0 (${{ matrix.profile }})"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium Connector MySQL
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-mysql -am -P${{ matrix.profile }}
|
|
||||||
-Dversion.mysql.server=8.0
|
|
||||||
-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
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_mysql:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
profile: [ 'mysql-ci', 'mysql-ci-gtids', 'mysql-ci-percona', 'mysql-ci-ssl' ]
|
|
||||||
name: "MySQL (${{ matrix.profile }})"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium Connector MySQL
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-mysql -am -P${{ matrix.profile }}
|
|
||||||
-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
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_mariadb:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
profile: [ 'mysql-ci', 'mysql-ci-gtids' ]
|
|
||||||
name: "MariaDB (${{ matrix.profile }})"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium Connector MySQL for MariaDB
|
|
||||||
# We specifically exclude the assembly profile for now as the MariaDB integration is still
|
|
||||||
# ongoing for GTID and therefore this simply runs the tests like non-assembly builds but
|
|
||||||
# utilizes the MariaDB database rather than MySQL at this time. It also gives us a chance
|
|
||||||
# to see how changes react to MariaDB as they're contributed.
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-mysql -am -Pmariadb,${{ matrix.profile }}
|
|
||||||
-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
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_postgresql:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.postgresql-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
name: "PostgreSQL"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
postgres-plugin: ["assembly", "assembly,postgres-16,pgoutput-decoder"]
|
|
||||||
fail-fast: false
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium Connector PostgreSQL (${{ matrix.postgres-plugin }})
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-postgres -am -P${{ matrix.postgres-plugin }}
|
|
||||||
-Ddebezium.test.records.waittime=5
|
|
||||||
-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
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_oracle:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.oracle-changed == 'true' || needs.file_changes.outputs.oracle-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
name: "Oracle"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
# We explicitly do not run the integration tests in this step as it's designed for pull requests only
|
|
||||||
# Integration tests can only be run against pushes to the repository for secret access
|
|
||||||
- name: Build Debezium Connector Oracle (PR)
|
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-oracle -am
|
|
||||||
-DskipITs=true
|
|
||||||
-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
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_sqlserver:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.sqlserver-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
name: "SQL Server"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium Connector SQL Server
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-sqlserver -am -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
|
|
||||||
|
|
||||||
build_outbox:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.outbox-changed == 'true' }}
|
|
||||||
name: "Quarkus Outbox"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Quarkus Outbox
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl :debezium-quarkus-outbox -am -amd -Passembly
|
|
||||||
-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
|
|
||||||
|
|
||||||
build_rest_extension:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.rest-extension-changed == 'true' }}
|
|
||||||
name: "REST Extension"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Connect REST Extension
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connect-rest-extension -am
|
|
||||||
-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
|
|
||||||
|
|
||||||
build_schema_generator:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }}
|
|
||||||
name: "Schema Generator"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Schema Generator
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-schema-generator -am
|
|
||||||
-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
|
|
||||||
|
|
||||||
build_debezium_testing:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }}
|
|
||||||
name: "Debezium Testing"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium Testing
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-testing,debezium-testing/debezium-testing-testcontainers -am -Passembly
|
|
||||||
-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
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_storage:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.storage-changed == 'true' }}
|
|
||||||
name: "Storage"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./mvnw clean install
|
|
||||||
-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 Debezium Connector MySQL
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-mysql -Passembly
|
|
||||||
-DskipTests=true
|
|
||||||
-DskipITs=true
|
|
||||||
-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
|
|
||||||
|
|
||||||
- name: Build Debezium Storage
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -f debezium-storage/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
|
|
||||||
|
|
||||||
build_cassandra:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' }}
|
|
||||||
name: "Cassandra"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action (Core)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: core
|
|
||||||
|
|
||||||
- name: Checkout Action (Cassandra)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: debezium/debezium-connector-cassandra
|
|
||||||
path: cassandra
|
|
||||||
|
|
||||||
# We explicitly use only the hash of the POM files from the core repository by default
|
|
||||||
# For this build, we do not care if there are or are not changes in the sibling repository since this
|
|
||||||
# job will only ever fire if there are changes in the common paths identified in the files_changed job.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f 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: Install dse dependency artifacts (for Debezium Connector Cassandra)
|
|
||||||
working-directory: cassandra
|
|
||||||
run: sh ./install-artifacts.sh
|
|
||||||
|
|
||||||
- name: Build Debezium Connector Cassandra
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f cassandra/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
|
|
||||||
|
|
||||||
build_db2:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' }}
|
|
||||||
name: "Db2"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action (Core)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: core
|
|
||||||
|
|
||||||
- name: Checkout Action (Db2)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: debezium/debezium-connector-db2
|
|
||||||
path: db2
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# We explicitly use only the hash of the POM files from the core repository by default
|
|
||||||
# For this build, we do not care if there are or are not changes in the sibling repository since this
|
|
||||||
# job will only ever fire if there are changes in the common paths identified in the files_changed job.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f 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 Debezium Connector Db2
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f db2/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
|
|
||||||
-DfailFlakyTests=false
|
|
||||||
|
|
||||||
build_informix:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' }}
|
|
||||||
name: "Informix"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action (Core)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: core
|
|
||||||
|
|
||||||
- name: Checkout Action (Db2)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: debezium/debezium-connector-informix
|
|
||||||
path: informix
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# We explicitly use only the hash of the POM files from the core repository by default
|
|
||||||
# For this build, we do not care if there are or are not changes in the sibling repository since this
|
|
||||||
# job will only ever fire if there are changes in the common paths identified in the files_changed job.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f 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 Debezium Connector Informix
|
|
||||||
run: >
|
|
||||||
./informix/mvnw clean install -f informix/pom.xml -Passembly,informix14
|
|
||||||
-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
|
|
||||||
|
|
||||||
build_vitess:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' }}
|
|
||||||
name: "Vitess"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action (Core)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: core
|
|
||||||
|
|
||||||
- name: Checkout Action (Vitess)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: debezium/debezium-connector-vitess
|
|
||||||
path: vitess
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# We explicitly use only the hash of the POM files from the core repository by default
|
|
||||||
# For this build, we do not care if there are or are not changes in the sibling repository since this
|
|
||||||
# job will only ever fire if there are changes in the common paths identified in the files_changed job.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f 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 Debezium Connector Vitess
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f vitess/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
|
|
||||||
|
|
||||||
build_spanner:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' }}
|
|
||||||
name: "Spanner"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action (Core)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: core
|
|
||||||
|
|
||||||
- name: Checkout Action (Spanner)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: debezium/debezium-connector-spanner
|
|
||||||
path: spanner
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# We explicitly use only the hash of the POM files from the core repository by default
|
|
||||||
# For this build, we do not care if there are or are not changes in the sibling repository since this
|
|
||||||
# job will only ever fire if there are changes in the common paths identified in the files_changed job.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f 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 Debezium Connector Spanner
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f spanner/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
|
|
||||||
|
|
||||||
build_jdbc:
|
|
||||||
needs: [ check_style, file_changes ]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true'}}
|
|
||||||
name: "JDBC"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action (Core)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: core
|
|
||||||
|
|
||||||
- name: Checkout Action (JDBC)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: debezium/debezium-connector-jdbc
|
|
||||||
path: jdbc
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# We explicitly use only the hash of the POM files from the core repository by default
|
|
||||||
# For this build, we do not care if there are or are not changes in the sibling repository since this
|
|
||||||
# job will only ever fire if there are changes in the common paths identified in the files_changed job.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f 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 Debezium Connector JDBC
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f jdbc/pom.xml -Passembly
|
|
||||||
-DskipITs=true
|
|
||||||
-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
|
|
||||||
|
|
||||||
build_debezium_server:
|
|
||||||
needs: [check_style, file_changes]
|
|
||||||
if: ${{ needs.file_changes.outputs.common-changed == 'true' }}
|
|
||||||
name: "Debezium Server"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action (Core)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: core
|
|
||||||
|
|
||||||
- name: Checkout Action (Debezium Server)
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: debezium/debezium-server
|
|
||||||
path: server
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# We explicitly use only the hash of the POM files from the core repository by default
|
|
||||||
# For this build, we do not care if there are or are not changes in the sibling repository since this
|
|
||||||
# job will only ever fire if there are changes in the common paths identified in the files_changed job.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }}
|
|
||||||
|
|
||||||
- name: Build Debezium (Core)
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -f core/pom.xml
|
|
||||||
-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 Debezium Server
|
|
||||||
run: >
|
|
||||||
./core/mvnw clean install -fae -f server/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
|
|
||||||
-DskipNonCore
|
|
180
.github/workflows/oracle-workflow-test.yml
vendored
180
.github/workflows/oracle-workflow-test.yml
vendored
@ -1,180 +0,0 @@
|
|||||||
name: Build and Test Oracle Connector
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- 1.*
|
|
||||||
- 2.*
|
|
||||||
paths:
|
|
||||||
- 'support/checkstyle/**'
|
|
||||||
- 'debezium-api/**'
|
|
||||||
- 'debezium-ddl-parser/**'
|
|
||||||
- 'debezium-assembly-descriptors/**'
|
|
||||||
- 'debezium-core/**'
|
|
||||||
- 'debezium-embedded/**'
|
|
||||||
- 'debezium-connector-oracle/**'
|
|
||||||
- 'debezium-parent/pom.xml'
|
|
||||||
- 'debezium-bom/pom.xml'
|
|
||||||
- 'pom.xml'
|
|
||||||
- '.github/workflows/oracle-workflow-test.yml'
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- 1.*
|
|
||||||
- 2.*
|
|
||||||
paths:
|
|
||||||
- 'support/checkstyle/**'
|
|
||||||
- 'debezium-api/**'
|
|
||||||
- 'debezium-ddl-parser/**'
|
|
||||||
- 'debezium-assembly-descriptors/**'
|
|
||||||
- 'debezium-core/**'
|
|
||||||
- 'debezium-embedded/**'
|
|
||||||
- 'debezium-connector-oracle/**'
|
|
||||||
- 'debezium-parent/pom.xml'
|
|
||||||
- 'debezium-bom/pom.xml'
|
|
||||||
- 'pom.xml'
|
|
||||||
- '.github/workflows/oracle-workflow-test.yml'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
name: Check Pull-Secrets
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
HAS_QUAY_IO: ${{ steps.skip.outputs.HAS_QUAY_IO }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Check if author has Quay.io credentials
|
|
||||||
id: skip
|
|
||||||
env:
|
|
||||||
QUAY_IO_USERNAME: ${{ secrets.QUAY_IO_USERNAME }}
|
|
||||||
QUAY_IO_PASSWORD: ${{ secrets.QUAY_IO_PASSWORD }}
|
|
||||||
run: |
|
|
||||||
if [[ $QUAY_IO_USERNAME == '' ]] && [[ $QUAY_IO_PASSWORD == '' ]]; then
|
|
||||||
echo "HAS_QUAY_IO=false" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "HAS_QUAY_IO=true" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
test-connector:
|
|
||||||
name: Oracle Connector
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [check]
|
|
||||||
if: ${{ needs.check.outputs.HAS_QUAY_IO == 'true' }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Get Date
|
|
||||||
id: get-date
|
|
||||||
run: |
|
|
||||||
echo "date=$(/bin/date -u "+%Y-%m")" >> $GITHUB_OUTPUT
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# This workflow uses its own dependency cache rather than the main debezium workflow cache because
|
|
||||||
# we explicitly want to trigger this build on pushes separate from the other workflow.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
# refresh cache every month to avoid unlimited growth
|
|
||||||
# we do not explicitly base this on POM changes since we are explicitly targeting a single connector
|
|
||||||
# and the likelihood that lots of dependencies will change that impacts Oracle is significantly low
|
|
||||||
# compared to other parts of Debezium that rely on frameworks such as Quarkus.
|
|
||||||
key: maven-oracle-${{ steps.get-date.outputs.date }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-oracle-${{ steps.get-date.outputs.date }}
|
|
||||||
|
|
||||||
- name: Build and Install Debezium dependencies
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -pl debezium-bom,debezium-core,:debezium-ide-configs,:debezium-checkstyle,:debezium-revapi -am
|
|
||||||
-DskipTests=true
|
|
||||||
-DskipITs=true
|
|
||||||
-Dformat.formatter.goal=validate
|
|
||||||
-Dformat.imports.goal=check
|
|
||||||
-Dhttp.keepAlive=false
|
|
||||||
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
|
||||||
|
|
||||||
- name: Build and Test Debezium Connector Oracle LogMiner
|
|
||||||
env:
|
|
||||||
QUAY_IO_USERNAME: ${{ secrets.QUAY_IO_USERNAME }}
|
|
||||||
QUAY_IO_PASSWORD: ${{ secrets.QUAY_IO_PASSWORD }}
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-oracle -am -Pinfinispan-buffer,oracle-docker,oracle-tests
|
|
||||||
-DskipITs=true
|
|
||||||
-Ddocker.username="$QUAY_IO_USERNAME"
|
|
||||||
-Ddocker.password="$QUAY_IO_PASSWORD"
|
|
||||||
-Dformat.formatter.goal=validate
|
|
||||||
-Dformat.imports.goal=check
|
|
||||||
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
|
||||||
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
|
||||||
|
|
||||||
# A GitHub worker only has so much space and currently when this stage of the job runs concurrently with the
|
|
||||||
# "test-connector" stage, we are facing a worker out of space problem. To attempt to combat this issue, the
|
|
||||||
# REST extension tests will run sequentially after the "test-connector" stage has concluded.
|
|
||||||
test-rest-extension:
|
|
||||||
name: Oracle Connect REST Extension
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [check, test-connector]
|
|
||||||
if: ${{ needs.check.outputs.HAS_QUAY_IO == 'true' }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout Action
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Get Date
|
|
||||||
id: get-date
|
|
||||||
run: |
|
|
||||||
echo "date=$(/bin/date -u "+%Y-%m")" >> $GITHUB_OUTPUT
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
|
||||||
uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: 17
|
|
||||||
|
|
||||||
# This workflow uses its own dependency cache rather than the main debezium workflow cache because
|
|
||||||
# we explicitly want to trigger this build on pushes separate from the other workflow.
|
|
||||||
- name: Cache Maven Repository
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.m2/repository
|
|
||||||
# refresh cache every month to avoid unlimited growth
|
|
||||||
# we do not explicitly base this on POM changes since we are explicitly targeting a single connector
|
|
||||||
# and the likelihood that lots of dependencies will change that impacts Oracle is significantly low
|
|
||||||
# compared to other parts of Debezium that rely on frameworks such as Quarkus.
|
|
||||||
key: maven-oracle-${{ steps.get-date.outputs.date }}
|
|
||||||
restore-keys: |
|
|
||||||
maven-oracle-${{ steps.get-date.outputs.date }}
|
|
||||||
|
|
||||||
- name: Build and Install Debezium dependencies
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -pl debezium-bom,debezium-core,:debezium-ide-configs,:debezium-checkstyle,:debezium-revapi -am
|
|
||||||
-DskipTests=true
|
|
||||||
-DskipITs=true
|
|
||||||
-Dformat.formatter.goal=validate
|
|
||||||
-Dformat.imports.goal=check
|
|
||||||
-Dhttp.keepAlive=false
|
|
||||||
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
|
||||||
|
|
||||||
- name: Build and Test Debezium Connector Oracle REST Extension
|
|
||||||
env:
|
|
||||||
QUAY_IO_USERNAME: ${{ secrets.QUAY_IO_USERNAME }}
|
|
||||||
QUAY_IO_PASSWORD: ${{ secrets.QUAY_IO_PASSWORD }}
|
|
||||||
run: >
|
|
||||||
./mvnw clean install -B -pl debezium-connector-oracle -am -Poracle-tests,rest-assembly
|
|
||||||
-DskipITs=true
|
|
||||||
-Dregistry.username="$QUAY_IO_USERNAME"
|
|
||||||
-Dregistry.password="$QUAY_IO_PASSWORD"
|
|
||||||
-Dformat.formatter.goal=validate
|
|
||||||
-Dformat.imports.goal=check
|
|
||||||
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
|
||||||
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
|
|
Loading…
Reference in New Issue
Block a user