Skip to content

Flowable Upgrade Build #505

Flowable Upgrade Build

Flowable Upgrade Build #505

Workflow file for this run

name: Flowable Upgrade Build
on:
push:
branches:
- master
schedule:
# Run every morning at 7 am
- cron: 0 7 * * *
env:
CURRENT_VERSION: 7.1.0
jobs:
test_postgres:
name: Postgres ${{ matrix.postgres }} Flowable ${{ matrix.oldVersion }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
postgres: [ 11, 12, 13, 14, 15, 16 ]
oldVersion: [ 7.0.0, 6.8.0, 6.7.2, 6.7.1, 6.7.0, 6.6.0, 6.5.0, 6.4.2, 6.4.1, 6.4.0, 6.3.1, 6.3.0 ]
services:
postgres:
image: postgres:${{ matrix.postgres }}
env:
POSTGRES_PASSWORD: flowable
POSTGRES_USER: flowable
ports:
- 5432:5432
# needed because the postgres container does not provide a health check
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 --tmpfs /var/lib/postgresql/data:rw
env:
# use localhost for the host here because we are running on the VM
# If we were running the job in a container this would be postgres
# '>-' is a special YAML syntax and means that new lines would be replaced with spaces
# and new lines from the end would be removed
MAVEN_CONFIG: >-
-Djdbc.url=jdbc:postgresql://localhost:5432/flowable
-Djdbc.username=flowable
-Djdbc.password=flowable
-Djdbc.driver=org.postgresql.Driver
-B -V --no-transfer-progress
steps:
- uses: actions/checkout@v2
- name: Checkout Flowable Engine
uses: actions/checkout@v2
with:
repository: flowable/flowable-engine
path: flowable-engine
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Install Flowable Engine SNAPSHOT
working-directory: flowable-engine/
run: ./mvnw -T 1C clean install -Pdistro -DskipTests -B -V --no-transfer-progress
- name: Install
run: ./mvnw -T 1C install -D skipTests
- name: Generate Data for version ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} -Dmaven.test.skip=true -DgenerateData=true clean test -f flowable-upgrade-${{ matrix.oldVersion }}/pom.xml
- name: Running $CURRENT_VERSION unit tests against ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} clean test -f flowable-upgrade-$CURRENT_VERSION/pom.xml
test_mysql:
name: MySQL ${{ matrix.mysql }} Flowable ${{ matrix.oldVersion }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Not testing with latest 8 since they have a bug for exists sub query with order by in the outer
# See https://bugs.mysql.com/bug.php?id=99019
mysql: [5.7, 8.0.18]
oldVersion: [ 7.0.0, 6.8.0, 6.7.2, 6.7.1, 6.7.0, 6.6.0, 6.5.0, 6.4.2, 6.4.1, 6.4.0, 6.3.1, 6.3.0 ]
services:
mysql:
image: mysql:${{ matrix.mysql }}
env:
MYSQL_DATABASE: flowable
MYSQL_USER: flowable
MYSQL_PASSWORD: flowable
MYSQL_ROOT_PASSWORD: flowable
ports:
- 3306:3306
# needed because the mysql container does not provide a health check
options: --health-cmd="mysqladmin -uflowable -pflowable status" --health-interval 10s --health-timeout 5s --health-retries 5 --tmpfs /var/lib/mysql:rw
env:
# use localhost for the host here because we are running on the VM
# If we were running the job in a container this would be mysql
# '>-' is a special YAML syntax and means that new lines would be replaced with spaces
# and new lines from the end would be removed
MAVEN_CONFIG: >-
-Djdbc.url=jdbc:mysql://localhost:3306/flowable?characterEncoding=UTF-8
-Djdbc.username=flowable
-Djdbc.password=flowable
-Djdbc.driver=com.mysql.cj.jdbc.Driver
-B -V --no-transfer-progress
steps:
- uses: actions/checkout@v2
- name: Checkout Flowable Engine
uses: actions/checkout@v2
with:
repository: flowable/flowable-engine
path: flowable-engine
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Install Flowable Engine SNAPSHOT
working-directory: flowable-engine/
run: ./mvnw -T 1C clean install -Pdistro -DskipTests -B -V --no-transfer-progress
- name: Install
run: ./mvnw -T 1C install -D skipTests
- name: Generate Data for version ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} -Dmaven.test.skip=true -DgenerateData=true clean test -f flowable-upgrade-${{ matrix.oldVersion }}/pom.xml
- name: Running $CURRENT_VERSION unit tests against ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} clean test -f flowable-upgrade-$CURRENT_VERSION/pom.xml
test_mariadb:
name: MariaDB ${{ matrix.mariadb }} Flowable ${{ matrix.oldVersion }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
mariadb: [ 10.6 ]
oldVersion: [ 7.0.0, 6.8.0, 6.7.2, 6.7.1, 6.7.0, 6.6.0, 6.5.0, 6.4.2, 6.4.1, 6.4.0, 6.3.1, 6.3.0 ]
services:
mariadb:
image: mariadb:${{ matrix.mariadb }}
env:
MARIADB_DATABASE: flowable
MARIADB_USER: flowable
MARIADB_PASSWORD: flowable
MARIADB_ROOT_PASSWORD: flowable
ports:
- 3306:3306
# needed because the mariadb container does not provide a health check
options: --health-cmd="mariadb-admin -uflowable -pflowable status" --health-interval 10s --health-timeout 5s --health-retries 5 --tmpfs /var/lib/mariadb:rw
env:
# use localhost for the host here because we are running on the VM
# If we were running the job in a container this would be mariadb
# '>-' is a special YAML syntax and means that new lines would be replaced with spaces
# and new lines from the end would be removed
MAVEN_CONFIG: >-
-Djdbc.url=jdbc:mariadb://localhost:3306/flowable?characterEncoding=UTF-8
-Djdbc.username=flowable
-Djdbc.password=flowable
-Djdbc.driver=org.mariadb.jdbc.Driver
-B -V --no-transfer-progress
steps:
- uses: actions/checkout@v2
- name: Checkout Flowable Engine
uses: actions/checkout@v2
with:
repository: flowable/flowable-engine
path: flowable-engine
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Install Flowable Engine SNAPSHOT
working-directory: flowable-engine/
run: ./mvnw -T 1C clean install -Pdistro -DskipTests -B -V --no-transfer-progress
- name: Install
run: ./mvnw -T 1C install -D skipTests
- name: Generate Data for version ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} -Dflowable.v5.compatibility=false -Dmaven.test.skip=true -DgenerateData=true clean test -f flowable-upgrade-${{ matrix.oldVersion }}/pom.xml
- name: Running $CURRENT_VERSION unit tests against ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} -Dflowable.v5.compatibility=false clean test -f flowable-upgrade-$CURRENT_VERSION/pom.xml
test_mssql:
name: SQL Server ${{ matrix.mssql }} Flowable ${{ matrix.oldVersion }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
mssql: [2017-latest-ubuntu]
oldVersion: [ 7.0.0, 6.8.0, 6.7.2, 6.7.1, 6.7.0, 6.6.0, 6.5.0, 6.4.2, 6.4.1, 6.4.0, 6.3.1, 6.3.0 ]
services:
mssql:
image: mcr.microsoft.com/mssql/server:${{ matrix.mssql }}
env:
SA_PASSWORD: flowableStr0ngPassword
ACCEPT_EULA: Y
ports:
- 1433:1433
# needed because the mssql container does not provide a health check
options: >-
--health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P flowableStr0ngPassword -l 30 -Q \"SELECT 1\" || exit 1"
--health-start-period 10s
--health-interval 10s
--health-timeout 5s
--health-retries 10
env:
# use localhost for the host here because we are running on the VM
# If we were running the job in a container this would be mssql
# '>-' is a special YAML syntax and means that new lines would be replaced with spaces
# and new lines from the end would be removed
MAVEN_CONFIG: >-
-Djdbc.url=jdbc:sqlserver://localhost:1433;database=flowable
-Djdbc.username=flowable
-Djdbc.password=flowable
-Djdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
-B -V --no-transfer-progress
steps:
- uses: actions/checkout@v2
- name: Checkout Flowable Engine
uses: actions/checkout@v2
with:
repository: flowable/flowable-engine
path: flowable-engine
- name: Prepare Database
run: ./.github/actions/scripts/prepare-mssql.sh
env:
# use localhost for the host here because we have specified a vm for the job.
# If we were running the job on a container this would be mssql
MSSQL_HOST: localhost
MSSQL_PORT: ${{ job.services.mssql.ports[1433] }} # get randomly assigned published port
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Install Flowable Engine SNAPSHOT
working-directory: flowable-engine/
run: ./mvnw -T 1C clean install -Pdistro -DskipTests -B -V --no-transfer-progress
- name: Install
run: ./mvnw -T 1C install -D skipTests
- name: Generate Data for version ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} -Dmaven.test.skip=true -DgenerateData=true clean test -f flowable-upgrade-${{ matrix.oldVersion }}/pom.xml
- name: Running $CURRENT_VERSION unit tests against ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} clean test -f flowable-upgrade-$CURRENT_VERSION/pom.xml
test_db2:
name: DB2 ${{ matrix.db2 }} Flowable ${{ matrix.oldVersion }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
db2: ["11.5.0.0a"]
oldVersion: [ 7.0.0, 6.8.0, 6.7.2, 6.7.1, 6.7.0, 6.6.0, 6.5.0, 6.4.2, 6.4.1, 6.4.0, 6.3.1, 6.3.0 ]
services:
db2:
image: ibmcom/db2:${{ matrix.db2 }}
env:
DB2INST1_PASSWORD: flowable
DBNAME: flowable
LICENSE: accept
ARCHIVE_LOGS: false
AUTOCONFIG: false
ports:
- 50000:50000
# needed because the db2 container does not provide a health check
options: >-
--privileged=true
--health-cmd="su - db2inst1 -c \"~/sqllib/bin/db2 connect to flowable && ~/sqllib/bin/db2 connect reset\""
--health-interval 30s
--health-timeout 40s
--health-retries 10
env:
# use localhost for the host here because we are running on the VM
# If we were running the job in a container this would be db2
# '>-' is a special YAML syntax and means that new lines would be replaced with spaces
# and new lines from the end would be removed
MAVEN_CONFIG: >-
-Djdbc.url=jdbc:db2://localhost:50000/flowable
-Djdbc.username=db2inst1
-Djdbc.password=flowable
-Djdbc.driver=com.ibm.db2.jcc.DB2Driver
-B -V --no-transfer-progress
steps:
- uses: actions/checkout@v2
- name: Checkout Flowable Engine
uses: actions/checkout@v2
with:
repository: flowable/flowable-engine
path: flowable-engine
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Install Flowable Engine SNAPSHOT
working-directory: flowable-engine/
run: ./mvnw -T 1C clean install -Pdistro -DskipTests -B -V --no-transfer-progress
- name: Install
run: ./mvnw -T 1C install -D skipTests
- name: Generate Data for version ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} -Dmaven.test.skip=true -DgenerateData=true clean test -f flowable-upgrade-${{ matrix.oldVersion }}/pom.xml
- name: Running $CURRENT_VERSION unit tests against ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} clean test -f flowable-upgrade-$CURRENT_VERSION/pom.xml
test_oracle:
name: Oracle ${{ matrix.oracle }} Flowable ${{ matrix.oldVersion }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
oracle: [ "11-slim", "18-slim" ]
include:
- oracle: 11-slim
driverVersion: 11.2.0.4
driverArtifact: ojdbc6
serviceName: XE
- oracle: 18-slim
driverVersion: 18.3.0.0
driverArtifact: ojdbc8
serviceName: XEPDB1
oldVersion: [ 7.0.0, 6.8.0, 6.7.2, 6.7.1, 6.7.0, 6.6.0, 6.5.0, 6.4.2, 6.4.1, 6.4.0, 6.3.1, 6.3.0 ]
services:
oracle:
image: gvenzl/oracle-xe:${{ matrix.oracle }}
env:
ORACLE_PASSWORD: flowable
APP_USER: flowable
APP_USER_PASSWORD: flowable
ports:
- 1521:1521
options: >-
--shm-size=2g
--health-cmd healthcheck.sh
--health-interval 30s
--health-timeout 40s
--health-retries 10
env:
# use localhost for the host here because we are running on the VM
# If we were running the job in a container this would be oracle
# '>-' is a special YAML syntax and means that new lines would be replaced with spaces
# and new lines from the end would be removed
MAVEN_CONFIG: >-
-Djdbc.url=jdbc:oracle:thin:@localhost:1521/${{ matrix.serviceName }}
-Djdbc.username=flowable
-Djdbc.password=flowable
-Djdbc.driver=oracle.jdbc.driver.OracleDriver
-Doracle.jdbc.version=${{ matrix.driverVersion }}
-Doracle.jdbc.artifact=${{ matrix.driverArtifact }}
-Doracle.jdbc.timezoneAsRegion=false
-B -V --no-transfer-progress
steps:
- uses: actions/checkout@v2
- name: Checkout Flowable Engine
uses: actions/checkout@v2
with:
repository: flowable/flowable-engine
path: flowable-engine
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- name: Install Flowable Engine SNAPSHOT
working-directory: flowable-engine/
run: ./mvnw -T 1C clean install -Pdistro -DskipTests -B -V --no-transfer-progress
- name: Install
run: ./mvnw -T 1C install -D skipTests
- name: Generate Data for version ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} -Dmaven.test.skip=true -DgenerateData=true clean test -f flowable-upgrade-${{ matrix.oldVersion }}/pom.xml
- name: Running $CURRENT_VERSION unit tests against ${{ matrix.oldVersion }}
run: ./mvnw -DoldVersion=${{ matrix.oldVersion }} clean test -f flowable-upgrade-$CURRENT_VERSION/pom.xml