Skip to content

Commit 3d9dda8

Browse files
committed
Abstract DB install script
1 parent f19ba00 commit 3d9dda8

File tree

2 files changed

+89
-145
lines changed

2 files changed

+89
-145
lines changed

.github/workflows/continuous-integration-workflow.yml

Lines changed: 12 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -290,42 +290,10 @@ jobs:
290290
sqlserver-install:
291291
name: Test MS SQL Server install script
292292
needs: [build, should-do-database-tests, check_branch]
293-
runs-on: ubuntu-latest
294293
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
295-
steps:
296-
- name: Checkout Openfire
297-
uses: actions/checkout@v4
298-
- name: Set up JDK 17 Zulu
299-
uses: actions/setup-java@v4
300-
with:
301-
java-version: 17
302-
distribution: zulu
303-
cache: maven
304-
- name: Restore mvn repo artifacts from build job
305-
uses: actions/download-artifact@v4
306-
with:
307-
name: mvn-repo
308-
path: ~/.m2/repository/org/igniterealtime/openfire/
309-
- name: Set environment variables
310-
run: |
311-
echo "CONNECTION_STRING=jdbc:sqlserver://localhost:1433;databaseName=openfire;applicationName=Openfire" >> $GITHUB_ENV
312-
echo "CONNECTION_DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver" >> $GITHUB_ENV
313-
echo "CONNECTION_USERNAME=sa" >> $GITHUB_ENV
314-
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
315-
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
316-
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
317-
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
318-
- name: Copy the Openfire database installation script
319-
run: |
320-
mkdir olddb
321-
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_sqlserver.sql $GITHUB_WORKSPACE/olddb/openfire_sqlserver.sql
322-
- name: Start database server and install database
323-
run: docker compose -f ./build/ci/compose/mssql.yml up --detach
324-
- name: Build & run database tester
325-
run: |
326-
pushd ./build/ci/updater
327-
./mvnw -B clean package exec:java
328-
294+
uses: ./.github/workflows/database-install.yml
295+
with:
296+
dbtype: 'sqlserver'
329297

330298
sqlserver-upgrade:
331299
name: Test MS SQL Server upgrade scripts
@@ -378,46 +346,13 @@ jobs:
378346
cp -R ../../../dist/distribution/target/distribution-base/resources/database ./target/resources
379347
./mvnw -B exec:java
380348
381-
382349
postgres-install:
383350
name: Test Postgres install script
384351
needs: [build, should-do-database-tests, check_branch]
385-
runs-on: ubuntu-latest
386352
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
387-
steps:
388-
- name: Checkout Openfire
389-
uses: actions/checkout@v4
390-
- name: Set up JDK 17 Zulu
391-
uses: actions/setup-java@v4
392-
with:
393-
java-version: 17
394-
distribution: zulu
395-
cache: maven
396-
- name: Restore mvn repo artifacts from build job
397-
uses: actions/download-artifact@v4
398-
with:
399-
name: mvn-repo
400-
path: ~/.m2/repository/org/igniterealtime/openfire/
401-
- name: Set environment variables
402-
run: |
403-
echo "CONNECTION_STRING=jdbc:postgresql://localhost:5432/openfire" >> $GITHUB_ENV
404-
echo "CONNECTION_DRIVER=org.postgresql.Driver" >> $GITHUB_ENV
405-
echo "CONNECTION_USERNAME=openfire" >> $GITHUB_ENV
406-
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
407-
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
408-
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
409-
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
410-
- name: Copy the Openfire database installation script
411-
run: |
412-
mkdir olddb
413-
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_postgresql.sql $GITHUB_WORKSPACE/olddb/openfire_postgresql.sql
414-
- name: Start database server and install database
415-
run: docker compose -f ./build/ci/compose/postgresql.yml up --wait
416-
- name: Build & run database tester
417-
run: |
418-
pushd ./build/ci/updater
419-
./mvnw -B clean package exec:java
420-
353+
uses: ./.github/workflows/database-install.yml
354+
with:
355+
dbtype: 'postgresql'
421356

422357
postgres-upgrade:
423358
name: Test Postgres upgrade scripts
@@ -470,47 +405,13 @@ jobs:
470405
cp -R ../../../dist/distribution/target/distribution-base/resources/database ./target/resources
471406
./mvnw -B exec:java
472407
473-
474408
mysql-install:
475409
name: Test MySQL install script
476410
needs: [build, should-do-database-tests, check_branch]
477-
runs-on: ubuntu-latest
478411
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
479-
steps:
480-
- name: Checkout Openfire
481-
uses: actions/checkout@v4
482-
- name: Set up JDK 17 Zulu
483-
uses: actions/setup-java@v4
484-
with:
485-
java-version: 17
486-
distribution: zulu
487-
cache: maven
488-
- name: Restore mvn repo artifacts from build job
489-
uses: actions/download-artifact@v4
490-
with:
491-
name: mvn-repo
492-
path: ~/.m2/repository/org/igniterealtime/openfire/
493-
- name: Set environment variables
494-
run: |
495-
echo "CONNECTION_STRING=jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC" >> $GITHUB_ENV
496-
echo "CONNECTION_DRIVER=com.mysql.cj.jdbc.Driver" >> $GITHUB_ENV
497-
echo "CONNECTION_USERNAME=root" >> $GITHUB_ENV
498-
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
499-
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
500-
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
501-
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
502-
- name: Copy the Openfire database installation script
503-
run: |
504-
mkdir olddb
505-
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_mysql.sql $GITHUB_WORKSPACE/olddb/openfire_mysql.sql
506-
- name: Start database server and install database
507-
run: |
508-
docker compose -f ./build/ci/compose/mysql.yml up --detach --wait
509-
- name: Build & run database tester
510-
run: |
511-
pushd ./build/ci/updater
512-
./mvnw -B clean package exec:java
513-
412+
uses: ./.github/workflows/database-install.yml
413+
with:
414+
dbtype: 'mysql'
514415

515416
mysql-upgrade:
516417
name: Test MySQL upgrade scripts
@@ -567,44 +468,10 @@ jobs:
567468
oracle-install:
568469
name: Test Oracle install scripts
569470
needs: [build, should-do-database-tests, check_branch]
570-
runs-on: ubuntu-latest
571471
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
572-
steps:
573-
- name: Checkout Openfire
574-
uses: actions/checkout@v4
575-
- name: Set up JDK 17 Zulu
576-
uses: actions/setup-java@v4
577-
with:
578-
java-version: 17
579-
distribution: zulu
580-
cache: maven
581-
- name: Restore mvn repo artifacts from build job
582-
uses: actions/download-artifact@v4
583-
with:
584-
name: mvn-repo
585-
path: ~/.m2/repository/org/igniterealtime/openfire/
586-
- name: Set environment variables
587-
run: |
588-
echo "CONNECTION_STRING=jdbc:oracle:thin:@localhost:1521/FREEPDB1" >> $GITHUB_ENV
589-
echo "CONNECTION_DRIVER=oracle.jdbc.driver.OracleDriver" >> $GITHUB_ENV
590-
echo "CONNECTION_USERNAME=openfire" >> $GITHUB_ENV
591-
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
592-
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
593-
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
594-
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
595-
- name: Copy the Openfire database installation script
596-
run: |
597-
mkdir olddb
598-
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_oracle.sql $GITHUB_WORKSPACE/openfire_oracle.sql
599-
- name: Start database server and install database
600-
run: |
601-
cat ./build/ci/compose/scripts/1.oracle-init.sql $GITHUB_WORKSPACE/openfire_oracle.sql > $GITHUB_WORKSPACE/olddb/1.install-db.sql
602-
docker compose -f ./build/ci/compose/oracle.yml up --wait
603-
- name: Build & run database tester
604-
run: |
605-
pushd ./build/ci/updater
606-
./mvnw -B clean package exec:java
607-
472+
uses: ./.github/workflows/database-install.yml
473+
with:
474+
dbtype: 'oracle'
608475

609476
oracle-upgrade:
610477
name: Test Oracle upgrade scripts
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
on:
2+
workflow_call:
3+
inputs:
4+
dbtype:
5+
required: true
6+
type: string
7+
8+
jobs:
9+
run-db-install-test:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
15+
- name: Set environment variables
16+
run: |
17+
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
18+
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
19+
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
20+
21+
if [ ${{ inputs.dbtype }} == 'sqlserver' ]; then
22+
echo "CONNECTION_STRING=jdbc:sqlserver://localhost:1433;databaseName=openfire;applicationName=Openfire" >> $GITHUB_ENV
23+
echo "CONNECTION_DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver" >> $GITHUB_ENV
24+
echo "CONNECTION_USERNAME=sa" >> $GITHUB_ENV
25+
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
26+
fi
27+
28+
if [ ${{ inputs.dbtype }} == 'mysql' ]; then
29+
echo "CONNECTION_STRING=jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC" >> $GITHUB_ENV
30+
echo "CONNECTION_DRIVER=com.mysql.cj.jdbc.Driver" >> $GITHUB_ENV
31+
echo "CONNECTION_USERNAME=root" >> $GITHUB_ENV
32+
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
33+
fi
34+
35+
if [ ${{ inputs.dbtype }} == 'postgresql' ]; then
36+
echo "CONNECTION_STRING=jdbc:postgresql://localhost:5432/openfire" >> $GITHUB_ENV
37+
echo "CONNECTION_DRIVER=org.postgresql.Driver" >> $GITHUB_ENV
38+
echo "CONNECTION_USERNAME=openfire" >> $GITHUB_ENV
39+
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
40+
fi
41+
42+
if [ ${{ inputs.dbtype }} == 'oracle' ]; then
43+
echo "CONNECTION_STRING=jdbc:oracle:thin:@localhost:1521/FREEPDB1" >> $GITHUB_ENV
44+
echo "CONNECTION_DRIVER=oracle.jdbc.driver.OracleDriver" >> $GITHUB_ENV
45+
echo "CONNECTION_USERNAME=openfire" >> $GITHUB_ENV
46+
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
47+
fi
48+
49+
- name: Set up JDK 17 Zulu
50+
uses: actions/setup-java@v4
51+
with:
52+
java-version: 17
53+
distribution: zulu
54+
cache: maven
55+
56+
- name: Restore mvn repo artifacts from build job
57+
uses: actions/download-artifact@v4
58+
with:
59+
name: mvn-repo
60+
path: ~/.m2/repository/org/igniterealtime/openfire/
61+
62+
- name: Copy the Openfire database installation script
63+
run: |
64+
mkdir olddb
65+
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_${{ inputs.dbtype }}.sql $GITHUB_WORKSPACE/olddb/openfire_${{ inputs.dbtype }}.sql
66+
67+
- name: Start database server and install database
68+
run: |
69+
if [ ${{ inputs.dbtype }} == 'oracle' ]; then
70+
cat ./build/ci/compose/scripts/1.oracle-init.sql $GITHUB_WORKSPACE/openfire_oracle.sql > $GITHUB_WORKSPACE/olddb/1.install-db.sql
71+
fi
72+
docker compose -f ./build/ci/compose/${{ inputs.dbtype }}.yml up --detach
73+
74+
- name: Build & run database tester
75+
run: |
76+
pushd ./build/ci/updater
77+
./mvnw -B clean package exec:java

0 commit comments

Comments
 (0)