Skip to content

Commit b024b74

Browse files
committed
Abstract DB install script
1 parent b38e477 commit b024b74

File tree

2 files changed

+90
-145
lines changed

2 files changed

+90
-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/sqlserver.yml up --detach
324-
- name: Build & run database tester
325-
run: |
326-
pushd ./build/ci/updater
327-
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"
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
@@ -366,46 +334,13 @@ jobs:
366334
pushd ./build/ci/updater
367335
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"
368336
369-
370337
postgres-install:
371338
name: Test Postgres install script
372339
needs: [build, should-do-database-tests, check_branch]
373-
runs-on: ubuntu-latest
374340
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
375-
steps:
376-
- name: Checkout Openfire
377-
uses: actions/checkout@v4
378-
- name: Set up JDK 17 Zulu
379-
uses: actions/setup-java@v4
380-
with:
381-
java-version: 17
382-
distribution: zulu
383-
cache: maven
384-
- name: Restore mvn repo artifacts from build job
385-
uses: actions/download-artifact@v4
386-
with:
387-
name: mvn-repo
388-
path: ~/.m2/repository/org/igniterealtime/openfire/
389-
- name: Set environment variables
390-
run: |
391-
echo "CONNECTION_STRING=jdbc:postgresql://localhost:5432/openfire" >> $GITHUB_ENV
392-
echo "CONNECTION_DRIVER=org.postgresql.Driver" >> $GITHUB_ENV
393-
echo "CONNECTION_USERNAME=openfire" >> $GITHUB_ENV
394-
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
395-
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
396-
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
397-
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
398-
- name: Copy the Openfire database installation script
399-
run: |
400-
mkdir olddb
401-
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_postgresql.sql $GITHUB_WORKSPACE/olddb/openfire_postgresql.sql
402-
- name: Start database server and install database
403-
run: docker compose -f ./build/ci/compose/postgresql.yml up --wait
404-
- name: Build & run database tester
405-
run: |
406-
pushd ./build/ci/updater
407-
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"
408-
341+
uses: ./.github/workflows/database-install.yml
342+
with:
343+
dbtype: 'postgresql'
409344

410345
postgres-upgrade:
411346
name: Test Postgres upgrade scripts
@@ -446,47 +381,13 @@ jobs:
446381
pushd ./build/ci/updater
447382
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"
448383
449-
450384
mysql-install:
451385
name: Test MySQL install script
452386
needs: [build, should-do-database-tests, check_branch]
453-
runs-on: ubuntu-latest
454387
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
455-
steps:
456-
- name: Checkout Openfire
457-
uses: actions/checkout@v4
458-
- name: Set up JDK 17 Zulu
459-
uses: actions/setup-java@v4
460-
with:
461-
java-version: 17
462-
distribution: zulu
463-
cache: maven
464-
- name: Restore mvn repo artifacts from build job
465-
uses: actions/download-artifact@v4
466-
with:
467-
name: mvn-repo
468-
path: ~/.m2/repository/org/igniterealtime/openfire/
469-
- name: Set environment variables
470-
run: |
471-
echo "CONNECTION_STRING=jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC" >> $GITHUB_ENV
472-
echo "CONNECTION_DRIVER=com.mysql.cj.jdbc.Driver" >> $GITHUB_ENV
473-
echo "CONNECTION_USERNAME=root" >> $GITHUB_ENV
474-
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
475-
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
476-
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
477-
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
478-
- name: Copy the Openfire database installation script
479-
run: |
480-
mkdir olddb
481-
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_mysql.sql $GITHUB_WORKSPACE/olddb/openfire_mysql.sql
482-
- name: Start database server and install database
483-
run: |
484-
docker compose -f ./build/ci/compose/mysql.yml up --detach --wait
485-
- name: Build & run database tester
486-
run: |
487-
pushd ./build/ci/updater
488-
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"
489-
388+
uses: ./.github/workflows/database-install.yml
389+
with:
390+
dbtype: 'mysql'
490391

491392
mysql-upgrade:
492393
name: Test MySQL upgrade scripts
@@ -531,44 +432,10 @@ jobs:
531432
oracle-install:
532433
name: Test Oracle install scripts
533434
needs: [build, should-do-database-tests, check_branch]
534-
runs-on: ubuntu-latest
535435
if: ${{ needs.should-do-database-tests.outputs.check == 'true' || needs.check_branch.outputs.is_publishable_branch == 'true'}}
536-
steps:
537-
- name: Checkout Openfire
538-
uses: actions/checkout@v4
539-
- name: Set up JDK 17 Zulu
540-
uses: actions/setup-java@v4
541-
with:
542-
java-version: 17
543-
distribution: zulu
544-
cache: maven
545-
- name: Restore mvn repo artifacts from build job
546-
uses: actions/download-artifact@v4
547-
with:
548-
name: mvn-repo
549-
path: ~/.m2/repository/org/igniterealtime/openfire/
550-
- name: Set environment variables
551-
run: |
552-
echo "CONNECTION_STRING=jdbc:oracle:thin:@localhost:1521/FREEPDB1" >> $GITHUB_ENV
553-
echo "CONNECTION_DRIVER=oracle.jdbc.driver.OracleDriver" >> $GITHUB_ENV
554-
echo "CONNECTION_USERNAME=openfire" >> $GITHUB_ENV
555-
echo "CONNECTION_PASSWORD=SecurePa55w0rd" >> $GITHUB_ENV
556-
OPENFIREVSN=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
557-
echo "OPENFIREVSN=$OPENFIREVSN" >> $GITHUB_ENV
558-
echo "JAVA_HOME=$(echo $JAVA_HOME_17_X64)" >> $GITHUB_ENV
559-
- name: Copy the Openfire database installation script
560-
run: |
561-
mkdir olddb
562-
cp $GITHUB_WORKSPACE/distribution/src/database/openfire_oracle.sql $GITHUB_WORKSPACE/openfire_oracle.sql
563-
- name: Start database server and install database
564-
run: |
565-
cat ./build/ci/compose/scripts/1.oracle-init.sql $GITHUB_WORKSPACE/openfire_oracle.sql > $GITHUB_WORKSPACE/olddb/1.install-db.sql
566-
docker compose -f ./build/ci/compose/oracle.yml up --wait
567-
- name: Build & run database tester
568-
run: |
569-
pushd ./build/ci/updater
570-
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"
571-
436+
uses: ./.github/workflows/database-install.yml
437+
with:
438+
dbtype: 'oracle'
572439

573440
oracle-upgrade:
574441
name: Test Oracle upgrade scripts
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
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/olddb/openfire_oracle.sql > $GITHUB_WORKSPACE/olddb/1.install-db.sql
71+
rm $GITHUB_WORKSPACE/olddb/openfire_oracle.sql
72+
fi
73+
docker compose -f ./build/ci/compose/${{ inputs.dbtype }}.yml up --detach
74+
75+
- name: Build & run database tester
76+
run: |
77+
pushd ./build/ci/updater
78+
./mvnw -B clean package exec:java -Dexec.args="$GITHUB_WORKSPACE"

0 commit comments

Comments
 (0)