DBZ-2065 Daily CI task to build against OpenJDK 14 and 15.

This commit is contained in:
Chris Cranford 2020-05-19 14:03:32 -04:00 committed by Gunnar Morling
parent 901b19c23c
commit c435a285a6
5 changed files with 316 additions and 0 deletions

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

View 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
View 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"