The Windows Installer for Jenkins has been around for many years as a way for users to install a Jenkins Master on Windows as a service. Since it’s initial development, it has not received a lot of updates or features, but that is about to change.
First, let’s take a look at the current installer experience.
Step 1
This is the default look and feel for a Windows Installer using the WiX Toolset, not very pretty and doesn’t give much branding information as to what the installer is for.
Step 3
The installer in general does not give many options for installing Jenkins, other than selecting the installation location.
Issues
The current installer has a few issues that the Platform SIG wanted to fix in a new install experience for users.
The installer only supports 32-bit installations.
The user could not select ports or user accounts to run the service on.
The installer bundled a 32-bit version of the Java runtime instead of using a pre-existing JRE
The installer did not support the experimental support in Jenkins for Java 11
The JENKINS_HOME directory was not placed in a good spot for modern Windows
There is no branding in the installer.
Road Forward
With the experimental Jenkins Windows Installer, most of these issues have been resolved!
The installer will only support 64-bit systems going forward. This is the vast majority of Windows systems these days, so this will help more users install Jenkins using the installer package.
The user is now able to enter user information for the service and select the port that Jenkins will use and verify that the port is available.
The installer no longer bundles a JRE, but will search for a compatible JRE on the system. If the user wants to use a different JRE, they can specify during install.
The installer has support for running with a Java 11 JRE, including the components listed on the Java 11 Preview Page.
the JENKINS_HOME directory is placed in the LocalAppData directory for the user that the service will run as, this aligns with modern Windows file system layouts.
The installer has been updated with branding to make it look nicer and provide a better user experience.
Screenshots
Below are screenshots of the new installer sequence:
Step 3
The installer now allows you to specify the username/password for the account to run as and checks that the account has LogonAsService rights.
Step 4
The installer also allows you to specify the port that Jenkins should run on and will not continue until a valid port is entered and tested.
Step 5
Instead of bundling a JRE, the installer now searches for a compatible JRE on the system (JRE 8 is the current search). If you want to use a different JRE on the system than the one found by the installer, you can browse and specify it. Only JRE 8 and JRE 11 runtimes are supported. The installer will automatically add the necessary arguments and additional jar files for running under Java 11 if the selected JRE is found to be version 11.
Next Steps
The new installer is under review by the members of the Platform SIG, but we need people to test the installer and give feedback. If you are interested in testing the new installer, please join the Platform SIG gitter room for more information.
There are still some things that are being researched and implemented in the new installer (e.g., keeping port and other selections when doing an upgrade), but it is getting close to release.
In addition to updates to the MSI based Windows installer, the Platform SIG is working on taking over the Chocolatey Jenkins package and releasing a version for each update.