Create plugins

This section provides instructions on creating custom plugins to meet your specific deployment needs.

Plugin files

A plugin consists of a zip file that contains a set of required and optional files in the root directory as well as supporting files in other locations.

To create a plugin, you create XML files along with any other required scripts, and compress them into a zip file.

To make the plugin available for use, you load the zip file into Deployment Automation. For details, see Load and upgrade plugins.

The following table describes the plugin XML files:

File Description
plugin.xml This file defines the plugin's functionality and describes the steps provided by the new plugin. For details, see Plugin.xml file elements.

The file also contains informational elements such as description, name, and the location of the plugin in the process designer plugin list hierarchy. It is the main plugin file to create.
upgrade.xml Deployment Automation uses this file to upgrade plugins between versions. Plugins are versioned, like all Deployment Automation entities, and this file describes how to upgrade previous plugin versions to the latest.
info.xml (Optional) This file details the high-level plugin information such as who created the plugin and its current version. Although the info.xml file is optional, we recommend that you use it.
Other Any supporting script files required by the plugin.

Because plugin steps are performed by an agent that runs on a target environment, make sure that any step commands configured in the plugin are able to run on that agent. You may have to install additional software or add more licenses. If the appropriate software cannot run correctly, the system displays an error message.

For reference, see a quick tutorial on how to create a "HelloWorld" plugin available from the Community website.

Back to top

Plugin.xml file elements

The plugin.xml file steps describe the functionality that you can apply in the release process.

Each step is defined by the use of the <step-type> element and contains the following supporting information:

Element Description
<properties> A container for <property> child elements. It can hold any number of <property> elements. You can supply property values at design-time or run-time.

In addition to the properties defined locally in a step, a step can access properties of other steps or even other plugins. To achieve this, use the namespaces of other steps or plugins to reference the necessary property, for example:
<step-name>.<property-name>
<command> This element details the command, such as a shell script, an operating system command, or a program, that the plugin step is invoking. The element has a set of additional XML attributes that describe how to run the command.
<post-processing> This element describes the logic for the error-handling or post-command processing after the command finishes running.

For details about these elements, see Plugin.xml file.

Back to top

Next steps: