Flowable Upgrade Build #500
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |