DBZ-2065 Daily CI task to build against OpenJDK 14 and 15.
This commit is contained in:
parent
901b19c23c
commit
c435a285a6
197
.github/workflows/jdk-outreach-workflow.yml
vendored
Normal file
197
.github/workflows/jdk-outreach-workflow.yml
vendored
Normal file
@ -0,0 +1,197 @@
|
||||
name: Java Quality Outreach
|
||||
"on":
|
||||
schedule:
|
||||
- cron: 0 22 * * *
|
||||
jobs:
|
||||
sqlserver:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: SQL Server - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-sqlserver -am -Passembly -Dformat.formatter.goal=validate
|
||||
-Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
mysql:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: MySQL - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-mysql -am -Passembly -Dformat.formatter.goal=validate
|
||||
-Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
postgres-decoderbufs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: PostgreSQL Decoderbufs - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-postgres -am -Passembly -Dformat.formatter.goal=validate
|
||||
-Dformat.imports.goal=check -Dversion.postgres.server=9.6-devel -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
postgres-wal2json:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: PostgreSQL Wal2JSON - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-postgres -am -Passembly,wal2json-decoder
|
||||
-Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.postgres.server=9.6-devel
|
||||
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
postgres-pgoutput:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: PostgreSQL Pgoutput - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-postgres -am -Passembly,pgoutput-decoder,postgres-10
|
||||
-Ddebezium.test.records.waittime=5 -Dformat.formatter.goal=validate -Dformat.imports.goal=check
|
||||
-Dversion.postgres.server=10-devel -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
mongodb-32:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: MongoDB 3.2 - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-mongodb -am -Passembly -Dformat.formatter.goal=validate
|
||||
-Dformat.imports.goal=check -Dversion.mongo.server=3.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
mongodb-36:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: MongoDB 3.6 - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-mongodb -am -Passembly -Dformat.formatter.goal=validate
|
||||
-Dformat.imports.goal=check -Dversion.mongo.server=3.6 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
mongodb-40:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: MongoDB 4.0 - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-connector-mongodb -am -Passembly -Dformat.formatter.goal=validate
|
||||
-Dformat.imports.goal=check -Dversion.mongo.server=4.0 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
quarkus-outbox:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: Quarkus Outbox Extension - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-quarkus-outbox -U -am -amd -Passembly
|
||||
-Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
testing:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java:
|
||||
- "14"
|
||||
- 15.0.0-ea.23
|
||||
name: Testing module - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: mvn clean install -B -pl debezium-testing -am -amd -Passembly -Dformat.formatter.goal=validate
|
||||
-Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
54
github-support/README.md
Normal file
54
github-support/README.md
Normal file
@ -0,0 +1,54 @@
|
||||
# Purpose
|
||||
|
||||
The scripts in this directory allow auto-generation of GitHub Actions workflows in the `.github/workflows` directory, which are used to perform various tasks when code is pushed or pull requests are opened against this repository.
|
||||
Each script is designed to use an input template found in the same directory and to output the final YAML descriptor in the `.github/workflows` directory.
|
||||
A description about each script can be be found below.
|
||||
|
||||
# Requirements
|
||||
|
||||
The GitHub Actions workflows are generated using YAML templates and in order to do this [YTT](https://get-ytt.io/) must be installed.
|
||||
Installation instructions for YTT can be found [here](https://k14s.io/#install-from-github-release).
|
||||
|
||||
# Data files
|
||||
|
||||
The `jobs.yml` file acts as a data source used by the YTT templates to know what CI jobs are to be executed by an action's workflow.
|
||||
The layout of this file is as follows:
|
||||
|
||||
```
|
||||
#@data/values
|
||||
---
|
||||
jobs:
|
||||
- key: sqlserver
|
||||
name: "SQL Server"
|
||||
maven: "mvn ..."
|
||||
- key: mysql
|
||||
name: "MySQL"
|
||||
maven: "mvn ..."
|
||||
```
|
||||
|
||||
Each GitHub Action job has a 1:1 mapping to an entry in the `jobs` array.
|
||||
Each entry in this array maintains a series of key/value pairs which are described below:
|
||||
|
||||
|Key|Description|
|
||||
|---|---|
|
||||
|key|Unique ID for each job task in a workflow that adheres to YAML key naming conventions.|
|
||||
|name|The descriptive name for the job task, often used in the job step's name. For example, `"PostgreSQL Pgoutput"`.|
|
||||
|maven|The full maven command line that should be invoked to perform the job build task.|
|
||||
|
||||
# OpenJDK matrix workflow
|
||||
|
||||
This script is designed to generate a test matrix of jobs that build Debezium against a number of OpenJDK versions.
|
||||
The generated workflow is scheduled to run once a day.
|
||||
|
||||
Below is the template and output YAML descriptor for GitHub Actions used by this script:
|
||||
|
||||
|---|---|
|
||||
|Script|`jdk-matrix.sh`|
|
||||
|Template|`jdk-matrix.yml`|
|
||||
|Output|`.github/workflows/jdk-outreach-workflow.yml`|
|
||||
|
||||
# Changing jobs or the templates
|
||||
|
||||
1. Modify `jobs.yml` to add/update/remove the necessary jobs or modify the workflow templates accordingly.
|
||||
2. Rerun the appropriate shell script(s) to regenerate the workflows in `.github/workflows`.
|
||||
3. Commit the changes and send a PR.
|
5
github-support/jdk-matrix.sh
Executable file
5
github-support/jdk-matrix.sh
Executable file
@ -0,0 +1,5 @@
|
||||
# This script generates a JDK matrix workflow.
|
||||
# This workflow is based on the template jdk-matrix.yml and uses jobs.yml as the data-source for data-driven jobs.
|
||||
# The output of this script is automatically written to the .github/workflows/jdk-outreach-workflow.yml file.
|
||||
# When changes are made to the jobs.yml or jdk-matrix.yml template, this script should be used to regenerate the GitHub Actions workflow prior to being committed.
|
||||
ytt -f ./jdk-matrix.yml -f ./jobs.yml > ../.github/workflows/jdk-outreach-workflow.yml
|
27
github-support/jdk-matrix.yml
Normal file
27
github-support/jdk-matrix.yml
Normal file
@ -0,0 +1,27 @@
|
||||
name: Java Quality Outreach
|
||||
|
||||
'on':
|
||||
schedule:
|
||||
- cron: "0 22 * * *"
|
||||
|
||||
#@ load("@ytt:data", "data")
|
||||
#@yaml/text-templated-strings
|
||||
jobs:
|
||||
#@ for job in data.values.jobs:
|
||||
(@= job.key @):
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java: ['14', '15.0.0-ea.23']
|
||||
name: (@= job.name @) - Java ${{ matrix.java }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup OpenJDK
|
||||
uses: actions/setup-java@v1.3.0
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
- name: Maven Build
|
||||
run: (@= job.maven @)
|
||||
#@ end
|
33
github-support/jobs.yml
Normal file
33
github-support/jobs.yml
Normal file
@ -0,0 +1,33 @@
|
||||
#@data/values
|
||||
---
|
||||
jobs:
|
||||
- key: "sqlserver"
|
||||
name: "SQL Server"
|
||||
maven: "mvn clean install -B -pl debezium-connector-sqlserver -am -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "mysql"
|
||||
name: "MySQL"
|
||||
maven: "mvn clean install -B -pl debezium-connector-mysql -am -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "postgres-decoderbufs"
|
||||
name: "PostgreSQL Decoderbufs"
|
||||
maven: "mvn clean install -B -pl debezium-connector-postgres -am -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.postgres.server=9.6-devel -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "postgres-wal2json"
|
||||
name: "PostgreSQL Wal2JSON"
|
||||
maven: "mvn clean install -B -pl debezium-connector-postgres -am -Passembly,wal2json-decoder -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.postgres.server=9.6-devel -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "postgres-pgoutput"
|
||||
name: "PostgreSQL Pgoutput"
|
||||
maven: "mvn clean install -B -pl debezium-connector-postgres -am -Passembly,pgoutput-decoder,postgres-10 -Ddebezium.test.records.waittime=5 -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.postgres.server=10-devel -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "mongodb-32"
|
||||
name: "MongoDB 3.2"
|
||||
maven: "mvn clean install -B -pl debezium-connector-mongodb -am -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.mongo.server=3.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "mongodb-36"
|
||||
name: "MongoDB 3.6"
|
||||
maven: "mvn clean install -B -pl debezium-connector-mongodb -am -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.mongo.server=3.6 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "mongodb-40"
|
||||
name: "MongoDB 4.0"
|
||||
maven: "mvn clean install -B -pl debezium-connector-mongodb -am -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dversion.mongo.server=4.0 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "quarkus-outbox"
|
||||
name: "Quarkus Outbox Extension"
|
||||
maven: "mvn clean install -B -pl debezium-quarkus-outbox -U -am -amd -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
||||
- key: "testing"
|
||||
name: "Testing module"
|
||||
maven: "mvn clean install -B -pl debezium-testing -am -amd -Passembly -Dformat.formatter.goal=validate -Dformat.imports.goal=check -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
|
Loading…
Reference in New Issue
Block a user