Skip to content

Java Quality Outreach #299

Java Quality Outreach

Java Quality Outreach #299

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 }}