Skip to content

Commit 4fe0bc1

Browse files
author
Bruce Irschick
authored
[AD-915] Auto Installer - JVM included (#124)
* [AD-915] Embed JRE into install. Simplify versioning of JDBC driver. * [AD-915] Fixed setting the JDBC_DRIVER_VERSION * [AD-915] Fixed setting the JDBC_DRIVER_VERSION * [AD-915] Fixed setting the JDBC_DRIVER_VERSION * [AD-915] Attempting to debug Windows 32-bit JDBC installer * [AD-915] Attempting fix to Windows 32-bit JDBC installer * [AD-915] Correct indentation formatting. * [AD-915] Code review improvements. * [AD-915] Temporary enable creating artifacts to get 32-bit installer. * [AD-915] Remove unnecessary "verbose" on jpackage command. * [AD-915] Fixed Platform setting in JDBC installer main.wxs.in * [AD-915] Replace JDK installation with script on Windows. * [AD-915] Attempt fix of JDK installation with script on Windows. * [AD-915] Attempt fix of JDK installation with script on Windows. * [AD-915] Increase tracing info for JDK installation with script on Windows. * [AD-915] Change parameter to JDK installer script. * [AD-915] Create JDKs directory, if not exists. * [AD-915] Fix syntax - Create JDKs directory, if not exists. * [AD-915] Fix location - Create JDKs directory, if not exists. * [AD-915] Fix setting of JAVA_HOME environment variable in GitHub workflow. * [AD-915] Get full path of JDKs folder. * [AD-915] Fix Resolve-Path call. * [AD-915] Add path to $JAVA_HOME/bin * [AD-915] Refactor code to use 'jlink' and create a runtime image instead of application for 'jpackage'. * [AD-915] Attempt to build Windows 32-bit installer using 'jpackage'. * [AD-915] Attempt #2 to build Windows 32-bit installer using 'jpackage'. * [AD-915] More clean-up and make release artifacts smaller/cleaner. * [AD-915] Attempt to fix clean-up and make release artifacts smaller/cleaner. * [AD-915] Attempt #2 to fix clean-up and make release artifacts smaller/cleaner. * [AD-915] Attempt #3 to clean-up and make release artifacts smaller/cleaner. * [AD-915] Attempt #4 to clean-up and make release artifacts smaller/cleaner. * [AD-915] Remove commented unused code. * [AD-915] Fix path to JVM.dll in JDBC installer template. * [AD-915] Set artifacts to be made on push to the develop branch. * [AD-915] Improve naming and version numbers for installer * [AD-915] Remove unused icon file. * [AD-915] Rename a installer resource for better clarity. * [AD-915] Add tracing for JLINK_VERSION. * [AD-915] Fix issue with JLINK_VERSION having more than 3 version components. * [AD-915] Code review changes. * [AD-915] Revert code to create artifacts - so now only on push to develop branch.
1 parent 137943c commit 4fe0bc1

17 files changed

+575
-330
lines changed

.github/workflows/linux-build.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ env:
2727
DOC_DB_ODBC_INTEGRATION_TEST: 1
2828
DOC_DB_LOG_PATH: "${{github.workspace}}/build/odbc/logs"
2929
DOC_DB_LOG_LEVEL: "debug"
30-
JDBC_DRIVER_VERSION: "1.3.1"
3130
JAVA_HOME: "/usr/lib/jvm/java-17-amazon-corretto/"
3231

3332
jobs:
@@ -71,6 +70,11 @@ jobs:
7170
sudo apt update
7271
sudo apt install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev linux-headers-$(uname -r) gcc gcc-multilib g++ g++-multilib linux-headers-$(uname -r) build-essential valgrind libboost-all-dev libbson-dev libsasl2-dev lcov
7372
73+
- name: Update environment with JDBC_DRIVER_VERSION
74+
run: |
75+
read -r JDBC_DRIVER_VERSION < ./src/JDBC_DRIVER_VERSION.txt
76+
echo "JDBC_DRIVER_VERSION=$JDBC_DRIVER_VERSION" >> $GITHUB_ENV
77+
7478
- name: Cache DocumentDB JDBC JAR
7579
id: cache-documentdb-jdbc-jar
7680
uses: actions/cache@v3
@@ -214,6 +218,11 @@ jobs:
214218
sudo apt update
215219
sudo apt install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev linux-headers-$(uname -r) gcc gcc-multilib g++ g++-multilib linux-headers-$(uname -r) build-essential valgrind libboost-all-dev libbson-dev libsasl2-dev lcov
216220
221+
- name: Update environment with JDBC_DRIVER_VERSION
222+
run: |
223+
read -r JDBC_DRIVER_VERSION < ./src/JDBC_DRIVER_VERSION.txt
224+
echo "JDBC_DRIVER_VERSION=$JDBC_DRIVER_VERSION" >> $GITHUB_ENV
225+
217226
- name: Cache DocumentDB JDBC JAR
218227
id: cache-documentdb-jdbc-jar
219228
uses: actions/cache@v3

.github/workflows/mac-build.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ env:
2727
DOC_DB_ODBC_INTEGRATION_TEST: 1
2828
DOC_DB_LOG_PATH: "${{github.workspace}}/build/odbc/logs"
2929
DOC_DB_LOG_LEVEL: "debug"
30-
JDBC_DRIVER_VERSION: "1.3.1"
3130
ODBCINSTINI: "${{github.workspace}}/build/odbc/lib/documentdb-odbc-install.ini"
3231
ODBCINI: "${{github.workspace}}/odbc.ini"
3332

@@ -64,6 +63,11 @@ jobs:
6463
chmod +x scripts/install_dependencies_mac.sh
6564
./scripts/install_dependencies_mac.sh
6665
66+
- name: Update environment with JDBC_DRIVER_VERSION
67+
run: |
68+
read -r JDBC_DRIVER_VERSION < ./src/JDBC_DRIVER_VERSION.txt
69+
echo "JDBC_DRIVER_VERSION=$JDBC_DRIVER_VERSION" >> $GITHUB_ENV
70+
6771
- name: Cache DocumentDB JDBC JAR
6872
id: cache-documentdb-jdbc-jar
6973
uses: actions/cache@v3

.github/workflows/mac-debug-build.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ env:
2727
DOC_DB_ODBC_INTEGRATION_TEST: 1
2828
DOC_DB_LOG_PATH: "${{github.workspace}}/build/odbc/logs"
2929
DOC_DB_LOG_LEVEL: "debug"
30-
JDBC_DRIVER_VERSION: "1.3.1"
3130
ODBCINSTINI: "${{github.workspace}}/build/odbc/lib/documentdb-odbc-install.ini"
3231
ODBCINI: "${{github.workspace}}/odbc.ini"
3332

@@ -71,6 +70,11 @@ jobs:
7170
echo "/Library/Developer/CommandLineTools/usr/bin" >> $GITHUB_PATH
7271
echo "/usr/local/bin/" >> $GITHUB_PATH
7372
73+
- name: Update environment with JDBC_DRIVER_VERSION
74+
run: |
75+
read -r JDBC_DRIVER_VERSION < ./src/JDBC_DRIVER_VERSION.txt
76+
echo "JDBC_DRIVER_VERSION=$JDBC_DRIVER_VERSION" >> $GITHUB_ENV
77+
7478
- name: Cache DocumentDB JDBC JAR
7579
id: cache-documentdb-jdbc-jar
7680
uses: actions/cache@v3

.github/workflows/win-build.yml

Lines changed: 60 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ env:
2929
DOC_DB_PRIV_KEY_FILE: ~/certs/docdb-sshtunnel.pem
3030
DOC_DB_LOG_PATH: "${{github.workspace}}/build/odbc/logs"
3131
DOC_DB_LOG_LEVEL: "debug"
32-
JDBC_DRIVER_VERSION: "1.3.1"
3332
MONGO_IMPORT_COMMAND: "mongoimport.exe"
3433
# Artifacts are created when pushing to develop branch on merge of pull requests.
3534
SHOULD_CREATE_ARTIFACTS: ${{ github.event_name == 'push' && github.ref == 'refs/heads/develop' }}
@@ -61,16 +60,36 @@ jobs:
6160
run: |
6261
Get-Content ./src/ODBC_DRIVER_VERSION.txt | ForEach-Object { echo "ODBC_DRIVER_VERSION=$_"; break; } >> $env:GITHUB_ENV
6362
64-
- name: Get Java distribution
63+
- name: Update environment with JDBC_DRIVER_VERSION
64+
shell: pwsh
65+
run: |
66+
echo "JDBC_DRIVER_VERSION=$($(Get-Content -Path ./src/JDBC_DRIVER_VERSION.txt -Raw).ToString().Trim())" >> $env:GITHUB_ENV
67+
68+
# Get first JDK to provide access to jpackage
69+
- name: Get Java distribution (JDK 17, 32-bit)
6570
uses: actions/setup-java@v2
6671
with:
6772
distribution: 'temurin'
6873
java-version: '17'
6974
architecture: x86
7075

76+
# Get second JDK to provide access to jlink
77+
- name: Get Java distribution (JDK 11, 32-bit)
78+
shell: pwsh
79+
run: |
80+
. ./scripts/functions_win.ps1
81+
Install-JavaJdk -InstallParentPath "jdks" -PlatformArchitecture "x86" -JdkVersion "11"
82+
echo "JAVA_HOME=$env:JAVA_HOME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
83+
7184
- name: "Update path for Java"
7285
run: |
73-
echo "${{ env.JAVA_HOME }}\bin\server" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
86+
echo "${{env.JAVA_HOME}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
87+
echo "${{env.JAVA_HOME}}\bin\server" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
88+
89+
- name: Ensure jlink and jpackage have the expected versions
90+
run: |
91+
if ( -not ((jlink --version) -like "11*") ) { exit 1 }
92+
if ( -not ((jpackage --version) -like "17*") ) { exit 1 }
7493
7594
- name: "Update path for WIX Toolset"
7695
run: |
@@ -134,7 +153,14 @@ jobs:
134153
uses: actions/upload-artifact@v3
135154
with:
136155
name: docdb-odbc-driver-win32-${{env.ODBC_DRIVER_VERSION}}
137-
path: build/odbc/cmake/Release
156+
path: |
157+
build/odbc/cmake/Release/*.dll
158+
build/odbc/cmake/Release/*.msi
159+
build/odbc/cmake/Release/*.exe
160+
build/odbc/cmake/Release/*.pdb
161+
!build/odbc/cmake/Release/images
162+
!build/odbc/cmake/Release/jpackage-resources
163+
!build/odbc/cmake/Release/runtime-image
138164
139165
- name: Upload performance test at push to develop
140166
if: ${{env.SHOULD_CREATE_ARTIFACTS == 'true'}}
@@ -229,15 +255,21 @@ jobs:
229255
run: |
230256
Get-Content ./src/ODBC_DRIVER_VERSION.txt | ForEach-Object { echo "ODBC_DRIVER_VERSION=$_"; break; } >> $env:GITHUB_ENV
231257
258+
- name: Update environment with JDBC_DRIVER_VERSION
259+
shell: pwsh
260+
run: |
261+
echo "JDBC_DRIVER_VERSION=$($(Get-Content -Path ./src/JDBC_DRIVER_VERSION.txt -Raw).ToString().Trim())" >> $env:GITHUB_ENV
262+
232263
- name: Get Java distribution
233-
uses: actions/setup-java@v2
234-
with:
235-
distribution: 'temurin'
236-
java-version: '17'
237-
architecture: x64
264+
shell: pwsh
265+
run: |
266+
. ./scripts/functions_win.ps1
267+
Install-JavaJdk -InstallParentPath "jdks" -PlatformArchitecture "x64"
268+
echo "JAVA_HOME=$env:JAVA_HOME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
238269
239270
- name: "Update path for Java"
240271
run: |
272+
echo "${{env.JAVA_HOME}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
241273
echo "${{env.JAVA_HOME}}\bin\server" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
242274
243275
- name: "Update path for WIX Toolset"
@@ -301,7 +333,14 @@ jobs:
301333
uses: actions/upload-artifact@v3
302334
with:
303335
name: docdb-odbc-driver-amd64-${{env.ODBC_DRIVER_VERSION}}
304-
path: build/odbc/cmake/Release
336+
path: |
337+
build/odbc/cmake/Release/*.dll
338+
build/odbc/cmake/Release/*.msi
339+
build/odbc/cmake/Release/*.exe
340+
build/odbc/cmake/Release/*.pdb
341+
!build/odbc/cmake/Release/images
342+
!build/odbc/cmake/Release/jpackage-resources
343+
!build/odbc/cmake/Release/runtime-image
305344
306345
- name: Upload performance test at push to develop
307346
if: ${{env.SHOULD_CREATE_ARTIFACTS == 'true'}}
@@ -367,15 +406,21 @@ jobs:
367406
steps:
368407
- uses: actions/checkout@v2
369408

409+
- name: Update environment with JDBC_DRIVER_VERSION
410+
shell: pwsh
411+
run: |
412+
echo "JDBC_DRIVER_VERSION=$($(Get-Content -Path ./src/JDBC_DRIVER_VERSION.txt -Raw).ToString().Trim())" >> $env:GITHUB_ENV
413+
370414
- name: Get Java distribution
371-
uses: actions/setup-java@v2
372-
with:
373-
distribution: 'temurin'
374-
java-version: '17'
375-
architecture: x64
415+
shell: pwsh
416+
run: |
417+
. ./scripts/functions_win.ps1
418+
Install-JavaJdk -InstallParentPath "jdks" -PlatformArchitecture "x64"
419+
echo "JAVA_HOME=$env:JAVA_HOME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
376420
377421
- name: "Update path for Java"
378422
run: |
423+
echo "${{env.JAVA_HOME}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
379424
echo "${{env.JAVA_HOME}}\bin\server" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
380425
381426
- name: "Update path for WIX Toolset"

build_linux_debug64.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ cmake ../src -DCMAKE_BUILD_TYPE="$BUILD_TYPE" -DCODE_COVERAGE="ON" -DBUILD_SHARE
1212
cd ..
1313

1414
# Download the DocumentDB JDBC Driver
15-
if [ -z "$JDBC_DRIVER_VERSION" ]; then
16-
JDBC_DRIVER_VERSION="1.3.1"
17-
fi
15+
read -r JDBC_DRIVER_VERSION < "${PROJECT_DIR}/src/odbc/JDBC_DRIVER_VERSION.txt"
1816
JDBC_DRIVER_FILENAME="documentdb-jdbc-$JDBC_DRIVER_VERSION-all.jar"
1917
JDBC_DRIVER_FULLPATH="$DRIVER_BIN_DIR/libs/$JDBC_DRIVER_FILENAME"
2018
export DOCUMENTDB_HOME="$DRIVER_BIN_DIR"

build_linux_release64_deb.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ cmake ../src -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCODE_COVERAGE="OFF" -DBUILD_SHARED
99
cd ..
1010

1111
# Download the DocumentDB JDBC Driver
12-
if [ -z "$JDBC_DRIVER_VERSION" ]; then
13-
JDBC_DRIVER_VERSION="1.3.1"
14-
fi
12+
read -r JDBC_DRIVER_VERSION < "${PROJECT_DIR}/src/odbc/JDBC_DRIVER_VERSION.txt"
1513
JDBC_DRIVER_FILENAME="documentdb-jdbc-$JDBC_DRIVER_VERSION-all.jar"
1614
JDBC_DRIVER_FULLPATH="$DRIVER_BIN_DIR/libs/$JDBC_DRIVER_FILENAME"
1715
export DOCUMENTDB_HOME="$DRIVER_BIN_DIR"

build_mac_debug64.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ cmake ../src -DCMAKE_BUILD_TYPE="$BUILD_TYPE" -DCODE_COVERAGE="ON" -DBUILD_SHARE
1212
cd ..
1313

1414
# Download the DocumentDB JDBC Driver
15-
if [ -z "$JDBC_DRIVER_VERSION" ]; then
16-
JDBC_DRIVER_VERSION="1.3.1"
17-
fi
15+
read -r JDBC_DRIVER_VERSION < "${PROJECT_DIR}/src/odbc/JDBC_DRIVER_VERSION.txt"
1816
JDBC_DRIVER_FILENAME="documentdb-jdbc-$JDBC_DRIVER_VERSION-all.jar"
1917
JDBC_DRIVER_FULLPATH="$DRIVER_BIN_DIR/libs/$JDBC_DRIVER_FILENAME"
2018
export DOCUMENTDB_HOME="$DRIVER_BIN_DIR"

build_mac_release64.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ cmake ../src -DCMAKE_BUILD_TYPE="$BUILD_TYPE" -DCODE_COVERAGE="OFF" -DBUILD_SHAR
99
make -j 4
1010

1111
# Download the DocumentDB JDBC Driver
12-
if [ -z "$JDBC_DRIVER_VERSION" ]; then
13-
JDBC_DRIVER_VERSION="1.3.1"
14-
fi
12+
read -r JDBC_DRIVER_VERSION < "${PROJECT_DIR}/src/odbc/JDBC_DRIVER_VERSION.txt"
1513
JDBC_DRIVER_FILENAME="documentdb-jdbc-$JDBC_DRIVER_VERSION-all.jar"
1614
JDBC_DRIVER_FULLPATH="$DRIVER_BIN_DIR/libs/$JDBC_DRIVER_FILENAME"
1715
export DOCUMENTDB_HOME="$DRIVER_BIN_DIR"

scripts/build_windows.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ $DRIVER_SOURCE_DIR = "${WORKING_DIR}\src"
2020
$DRIVER_BUILD_DIR = "${BUILD_DIR}\odbc\cmake"
2121

2222
# Download the JDBC driver
23-
$JDBC_DRIVER_VERSION = if ($JDBC_DRIVER_VERSION -eq $null) { "1.3.1" } else { $JDBC_DRIVER_VERSION }
23+
$JDBC_DRIVER_VERSION = $($(Get-Content -Path ./src/JDBC_DRIVER_VERSION.txt -Raw).ToString().Trim())
2424
$JDBC_DRIVER_FILENAME = "documentdb-jdbc-$JDBC_DRIVER_VERSION-all.jar"
2525
$JDBC_DRIVER_FULLPATH = "$DRIVER_BUILD_DIR\$CONFIGURATION\libs\$JDBC_DRIVER_FILENAME"
2626
if (-not (Test-Path -Path $JDBC_DRIVER_FULLPATH -PathType Leaf)) {

0 commit comments

Comments
 (0)