BuildMaster Documentation

BuildMaster Extensions

Although you can already do anything in BuildMaster with scripts and the other tightly-integrated Powershell/shell features, you can also build a BuildMaster Extension to add additional components and functionality into your BuildMaster Installation.

A lot of BuildMaster's functionality is delivered through built-in extensions, and you can add several types of components by simply creating an extension that's built against the BuildMaster SDK. Here's what you can extend:

  • Operations - used in plans to perform tasks against a server
  • Variable Functions - used in plans to provide or manipulate values
  • User Directories - authentication and privileges
  • Source Control Provider - interface to an external SCM system like Git, SVN, TFS, etc
  • Issue Tracking Connection - interface to an external issue tracking system like JIRA
  • Database Connection - interface to an external database such as SQL Server, Oracle
  • Event Listener - code triggered in response to a certain event, such as deployment complete
  • Promotion Requirement - an automated approval on a gate

Installing an Extension

If your installation of BuildMaster can access inedo.com, simply navigate to Admin > Extensions, and install or update extensions from the gallery.

Installing an Extension Manually

Custom extensions, or extensions manually downloaded from inedo.com can be installed as follows:

  1. Copy the extension file (for example, Subversion.bmx) to the Extension Library path (by default, this is C:\BuildMaster\Extensions).
  2. Restart the BuildMaster Service (Admin > Service).
  3. Restart the BuildMaster Web Application (Admin > All Settings > Save).
  4. Verify that the new extension has been loaded (Admin > Extensions)

Legacy Extension Configurers

Legacy plan actions utilize an extension's configuration profiles; most extensions do not require any additional configuration, and most extensions that do require configuration use sensible defaults for their configuration settings, some extensions simply cannot (i.e. they require credentials to interface with a third-party tool).

Operations do not use configuration profiles, but instead have variables that can be overridden at any level.

More on this topic: