name: Java Quality Outreach on: push: paths: - '.github/workflows/jdk-outreach-workflow.yml' pull_request: paths: - '.github/workflows/jdk-outreach-workflow.yml' schedule: - cron: 0 22 * * * env: MAVEN_FULL_BUILD_PROJECTS: "\\!debezium-microbenchmark-oracle" jobs: sqlserver: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: SQL Server - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Maven Build run: > ./mvnw clean install -B -pl debezium-bom,debezium-connector-sqlserver -am -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -DfailFlakyTests=false ${{ matrix.feature.extra }} mysql: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: MySQL - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Maven Build run: > ./mvnw clean install -B -pl debezium-bom,debezium-connector-mysql -am -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -DfailFlakyTests=false ${{ matrix.feature.extra }} postgres-pgoutput: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: PostgreSQL Pgoutput - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Maven Build run: > ./mvnw clean install -B -pl debezium-bom,debezium-connector-postgres -am -Passembly,pgoutput-decoder,postgres-16 ${{ matrix.feature.args }} -Ddebezium.test.records.waittime=5 -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -DfailFlakyTests=false ${{ matrix.feature.extra }} mongodb: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: MongoDB 7.0 - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Maven Build run: > ./mvnw clean install -B -pl debezium-bom,debezium-connector-mongodb -am -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.mongo.server=7.0 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -DfailFlakyTests=false ${{ matrix.feature.extra }} oracle: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Oracle - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Maven Build run: > ./mvnw clean install -B -pl debezium-bom,debezium-connector-oracle -am -DskipITs=true -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 -DfailFlakyTests=false ${{ matrix.feature.extra }} cassandra: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Cassandra - Java ${{ matrix.feature.release }} steps: - name: Checkout Core uses: actions/checkout@v4 with: path: core - name: Checkout Cassandra uses: actions/checkout@v4 with: repository: debezium/debezium-connector-cassandra path: cassandra - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build Debezium Core run: > ./core/mvnw clean install -f core/pom.xml -DskipTests -DskipITs -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} - name: Install dse dependency artifacts (for Debezium Connector Cassandra) working-directory: cassandra run: sh ./install-artifacts.sh - name: Build Debezium Connectors Cassandra run: > ./core/mvnw clean install -f cassandra/pom.xml -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} db2: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Db2 - Java ${{ matrix.feature.release }} steps: - name: Checkout Core uses: actions/checkout@v4 with: path: core - name: Checkout Db2 uses: actions/checkout@v4 with: repository: debezium/debezium-connector-db2 path: db2 - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build Debezium Core run: > ./core/mvnw clean install -f core/pom.xml -DskipTests -DskipITs -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} - name: Build Debezium Connector Db2 run: > ./core/mvnw clean install -f db2/pom.xml -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -DfailFlakyTests=false ${{ matrix.feature.extra }} spanner: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Spanner - Java ${{ matrix.feature.release }} steps: - name: Checkout Core uses: actions/checkout@v4 with: path: core - name: Checkout Spanner uses: actions/checkout@v4 with: repository: debezium/debezium-connector-spanner path: spanner - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build Debezium Core run: > ./core/mvnw clean install -f core/pom.xml -DskipTests -DskipITs -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} - name: Build Debezium Connector Spanner run: > ./core/mvnw clean install -f spanner/pom.xml -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} vitess: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Vitess - Java ${{ matrix.feature.release }} steps: - name: Checkout Core uses: actions/checkout@v4 with: path: core - name: Checkout Vitess uses: actions/checkout@v4 with: repository: debezium/debezium-connector-vitess path: vitess - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build Debezium Core run: > ./core/mvnw clean install -f core/pom.xml -DskipTests -DskipITs -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} - name: Build Debezium Connector Vitess run: > ./core/mvnw clean install -f vitess/pom.xml -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} informix: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Informix - Java ${{ matrix.feature.release }} steps: - name: Checkout Core uses: actions/checkout@v4 with: path: core - name: Checkout Informix uses: actions/checkout@v4 with: repository: debezium/debezium-connector-informix path: informix - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build Debezium Core run: > ./core/mvnw clean install -f core/pom.xml -DskipTests -DskipITs -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} - name: Build Debezium Connector Informix run: > ./core/mvnw clean install -f informix/pom.xml -Passembly,informix14 ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Ddebezium.test.records.waittime=5 -Ddebezium.test.records.waittime.after.nulls=5 -DfailFlakyTests=false ${{ matrix.feature.extra }} ibmi: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: IBMi - Java ${{ matrix.feature.release }} steps: - name: Checkout Core uses: actions/checkout@v4 with: path: core - name: Checkout IBMi uses: actions/checkout@v4 with: repository: debezium/debezium-connector-ibmi path: ibmi - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build Debezium Core run: > ./core/mvnw clean install -f core/pom.xml -DskipTests -DskipITs -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} - name: Build Debezium Connector IBMi run: > ./core/mvnw clean install -f ibmi/pom.xml -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Ddebezium.test.records.waittime=5 -Ddebezium.test.records.waittime.after.nulls=5 -DfailFlakyTests=false -DskipITs ${{ matrix.feature.extra }} quarkus-outbox: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Quarkus Outbox Extension - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build (core) 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 ${{ matrix.feature.extra }} - name: Maven Build run: > ./mvnw clean install -B -pl :debezium-quarkus-outbox -am -amd -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} rest-extension: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Rest Extension - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Maven Build run: > ./mvnw clean install -B -pl debezium-bom,debezium-connect-rest-extension -am -Passembly ${{ matrix.feature.args }} -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 ${{ matrix.feature.extra }} testing: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Testing - Java ${{ matrix.feature.release }} steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Maven Build run: > ./mvnw clean install -B -pl debezium-bom,debezium-testing -am -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -DfailFlakyTests=false ${{ matrix.feature.extra }} server: runs-on: ubuntu-latest strategy: matrix: feature: [ { release: ga, args: '-DskipITs=true -DskipTests=true', extra: '' }, { release: ea, args: '', extra: '-Dnet.bytebuddy.experimental=true' } ] fail-fast: false name: Server - Java ${{ matrix.feature.release }} steps: - name: Checkout Core uses: actions/checkout@v4 with: path: core - name: Checkout Server uses: actions/checkout@v4 with: repository: debezium/debezium-server path: server - name: Setup OpenJDK uses: oracle-actions/setup-java@v1 with: website: jdk.java.net release: ${{ matrix.feature.release }} - name: Build Debezium Core run: > ./core/mvnw clean install -f core/pom.xml -DskipTests -DskipITs -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 ${{ matrix.feature.extra }} - name: Build Debezium Server run: > ./core/mvnw clean install -fae -f server/pom.xml -Passembly ${{ matrix.feature.args }} -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -DskipNonCore ${{ matrix.feature.extra }}