Upgrading to BuildMaster 7.0

KB#1770: Last Updated May 5, 2021

BuildMaster 7.0 is currently in pre-release. Although we’ve been using it internally for quite some time, and it’s the default choice for new installations, we advice some caution before upgrading. Note that, once released, we no longer no longer recommend upgrading to v6.2, and will update KB# 1766 Upgrading to BuildMaster 6.2 to reflect this advice.

Using v3 or v4? see KB#1151 Upgrading from BuildMaster v3 and v4 for upgrade options

Using v5 or v6.0? upgrade directly to v6.1 (KB#1163 Upgrading to BuildMaster 6.1)

Using v6.1 or v6.2? upgrade directly to v7

What’s in This Update?

BuildMaster 7.0 is a major upgrade. If you’re upgrading from BuildMaster 6.1, make sure to read KB# 1766 Upgrading to BuildMaster 6.2 to see the breaking changes and significant new features in that release, especially if you’re using Legacy Features from earlier versions.

If you’re upgrading from BuildMaster 6.2, the changes will fairly minor by comparison.

Review this article carefully before deciding when and how to upgrade.

New Feature: Style Updates & Dark Mode Option in UI

While the overall UI hasn’t been changed too much, we completely refactored the stylesheets behind the scenes. This may yield some different color buttons throughout the software. This changed allowed us to introduce a new feature (Dark Mode) that uses a darker background to make it easier on the eyes. This mode is brand new for us, and will be continually refined; let us know how to make it better.

New Feature: Release Templates Overhaul

We made some major improvements to the way you manage and use release templates. Generally speaking, we will recommend to prefer release templates so that you can get variable prompts and use consistent pipelines.

This is almost entirely a UI change, and will not impact your existing data or release templates. Instead, you’ll notice a streamlined release template editor and creating release from templates will be much easier.

New Feature: Outbound-communication Mode for Inedo Agents

The Inedo Agent can now operate in an outgoing mode, meaning that BuildMaster v7 can accept incoming connections from agents instead of contacting agents directly. This opens up new possibilities for cloud-hosting BuildMaster while still having access to on-prem resources.

New Feature: Run as Docker Container on Linux

BuildMaster is now cross-platform! You can now run BuildMaster as a Linux container instead of hosting on a Windows server. See our Linux and Docker Installation Guide.

New Feature: High-availability & Load Balancing

BuildMaster can now be run as a cluster, in high-availability & load-balanced mode. This will not only distribute executions across multiple servers (which, in turn, will communicate to remote servers via agents), but it will ensure that if any single server in a BuildMaster cluster goes down, the application will continue, largely interrupted.

Deprecated Feature: Deployables

Deployables have been a “vestigial” feature since v5, and have been hidden form the UI for new users since v6. As of v7, they are officially deprecated, which means we recommend migrating away from them if you’re using them.

As part of the internal web framework updates and release template changes, we removed some functionality from the UI, such as providing error messages when you incorrectly edit deployables. We doubt anyone will notice, but let us know if there are issues.

Removed: Environment “Soft delete”

Environments are no longer “soft deleted” (i.e. hidden but flagged in the database as deleted); this behavior was removed to simplify code, reduce bugs, and keep it more inline with how users expect delete to work.

Upon upgrading to v7, your “soft deleted” environments (which you probably didn’t even know were still in there) will be permanently deleted. The database column will remain for compatibility purposes, and to allow you to downgrade to 6.2 if needed.

Upgrade Process

You can perform the upgrade from the Inedo Hub, or use the Legacy (Traditional Installer).

Risk Mitigation

Compared with prior major versions, this is a relatively low-risk upgrade. Like with all upgrades, you should make sure your database is backed up.

There were no major changes the execution engine, pipelines, or deployment plan logic, so your applications should still build and deploy just fine. There may be some bugs in the web UI due to the internal framework upgrades.

You do not need to upgrade extensions, but you will be prompted to. Before upgrading extensions, make sure to back-up your your installation’s `\Extensions` directory (`Extensions.ExtensionsPath` in Advanced Settings) so that you can rollback if needed. This will save the hassle of downgrading later.

Rolling Back

You can rollback using the Inedo Hub. If you’re using the traditional installer, you’ll want need to uninstall and then reinstall the older version of BuildMaster.

You can rollback to any version of 6.2 without restoring the database. If you upgrade to 7.0.0 to 7.0.5*, then you can downgrade to your previous 6.2 version without a database restore.

While there are database schema changes, they are all backwards-compatible, which means you can safely rollback your BuildMaster installation if there’s a showstopper bug, and then upgrade later.

* after 7.0.5 (we think), there will be database changes like removing unused tables that would require a rollback. We may change this target to a later version, and then update this article.

You may need to also rollback to old extension versions. BuildMaster v7 uses the Inedo SDK v1.10, which cannot be used by BuildMaster v6.2.