Add CI install-test for the Windows MSI + document MSI install/upgrade/uninstall#664
Open
vharseko wants to merge 4 commits into
Open
Add CI install-test for the Windows MSI + document MSI install/upgrade/uninstall#664vharseko wants to merge 4 commits into
vharseko wants to merge 4 commits into
Conversation
The opendj-msi package was built and uploaded but never installed or exercised in CI. Add a test-msi job (needs: build-maven) that, on a windows-latest runner, installs the built .msi silently (msiexec /i), runs setup, registers and starts/stops the OpenDJ Windows service with an ldapsearch liveness check, then uninstalls (msiexec /x).
…E 25) The MSI ships no JRE, so add a WiX launch condition that fails the install early with a clear message when Java is not detected (it does not install Java). JAVA_HOME is captured from the environment before LaunchConditions; `Installed` keeps uninstall/repair working regardless of Java. Fix the test-msi CI job (it failed with `net start` exit 2 "service already started"): - setup.bat is now invoked with --doNotStart, so the server is started only by `net start "OpenDJ Server"` (setup.bat no longer starts a standalone instance first). - Bump actions/setup-java from 21 to 25 (latest LTS; smoke-tests the MSI under a fresh JRE). The runner has JAVA_HOME from setup-java, so the new launch condition is satisfied and the install proceeds.
The launch condition (Installed OR JAVA_HOME_ENV) false-blocked valid installs: a JRE does not always set JAVA_HOME (it may be only on PATH). Drop it - the MSI again only copies files and Java availability stays the admin's responsibility. The test-msi fix (--doNotStart, JRE 25) is unaffected.
The install guide covered only the .zip and native .deb/.rpm. Add Windows MSI sections to chap-install/chap-upgrade/chap-uninstall: GUI and silent msiexec install, Java as a runtime prerequisite the installer does not enforce, configure via setup.bat, optional Windows service registration via windows-service.bat, MSI upgrade (disable service, back up, install newer .msi, upgrade.bat, re-enable), and uninstall via Apps & features / msiexec /x.
maximthomas
approved these changes
Jun 29, 2026
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Add CI coverage for the Windows MSI and document MSI install/upgrade/uninstall. The
opendj-msipackage was built and uploaded as an artifact but never installed or exercised in CI, and the
install guide never mentioned the MSI (
.msi/msiexecappeared nowhere — only.zipand native.deb/.rpm).This PR does not change the MSI package itself.
CI:
test-msijob (needs: build-maven,runs-on: windows-latest)windows-latest-11artifact (contains the.msi).msiexec /i … /quiet, then resolves the install root.setup.bat --doNotStart, registers the OpenDJ Windows service(
windows-service.bat --enableService),net start/net stop"OpenDJ Server" with aTCP +
ldapsearchliveness check.msiexec /x … /quiet.--doNotStartis required: without itsetup.batstarts a standalone server andnet startthenreturns exit 2 (
service already started).Docs: MSI install/upgrade/uninstall (
install-guide/)chap-install.adoc— new "Install With the Windows Installer (MSI)" section: GUI and silentmsiexec /i, install location, Java as a runtime prerequisite the installer does not enforce(set
OPENDJ_JAVA_HOME/OPENDJ_JAVA_BINor havejavaon PATH), configure withsetup.bat,optional Windows-service registration via
windows-service.bat(the MSI does not register it).chap-upgrade.adoc— MSI upgrade: disable service, back up, install the newer.msiover the samedirectory (instance
config/db/logskept), runupgrade.bat, re-enable the service.chap-uninstall.adoc— MSI uninstall via Apps & features ormsiexec /x.Note on the Java launch condition
An earlier commit added a WiX launch condition requiring
JAVA_HOME; it was reverted because aJRE does not always set
JAVA_HOME(it may be only on PATH), which would false-block valid installs.The docs instead state Java is a prerequisite the admin ensures.
MSI validation findings (not changed here — follow-up)
Program Files (x86); a server should ship x64.windows-service.bat(instance-bound, post-setup).InstallerVersion="300"(Windows Installer 3.0) andCompressionLevel="none"(bloated cab).dotnet40via winetricks under wine; winetricks pinned tomaster;light -svaldisables ICE validation.Migration note: WiX v4+ is a .NET tool running natively on Linux/macOS (would drop
wine+winetricks+dotnet40); caveat: WiX v6+ carries an Open Source Maintenance Fee.
build-docker-alpinefailures on some runs are an unrelated pre-existing flake.