Releasing a Commercial Plugin

How to release a commercial plugin for Jenkins to ToolSpring Update Center.

Releasing a Commercial Plugin

ToolSpring maintains an Update Center to host commercial plugins for Jenkins. A registered ToolSpring publisher, i.e. the product owner or a team member, performs a release process in order to upload a plugin to the ToolSpring Update Center.

A ToolSpring customer who has purchased a product subscription can use the ToolSpring Plugin Manager in Jenkins to download and install the corresponding plugin from the Update Center.

The ToolSpring Update Center is similar to but independent of the Jenkins project's primary Update Center, which hosts free open-source plugins.

Plugin developers who are familiar with releasing open-source plugins for Jenkins, or releasing binaries to a private Maven artifact repository, will notice a similar process for ToolSpring commercial plugins.

ToolSpring Update Center

The ToolSpring Update Center hosts commercial Jenkins plugins in a Maven artifact repository. The release process will push your plugin artifacts to this repository.

The Update Center:

  • Requires your ToolSpring login credentials for authenticating a push request.
  • Accepts plugins that have release (not snapshot) versions. Attempting to release a snapshot version like 1.0-SNAPSHOT will lead to an error.
  • Accepts distinct release versions: updates are not allowed. Attempting to release a version that is already stored in this repository will lead to an error.
  • Supports SHA-1 checksums. Attempting to release a SHA-256/SHA-512 checksum file for the maven-metadata.xml file will lead to an error.

Jenkins Plugin Metadata

A Jenkins plugin is a Java binary that includes the metadata listed below. These among other metadata are used by a build tool like Maven or Gradle, which automates the release process.

  • groupId - Typically a domain name whose parts are re-ordered from last to first, e.g. com.my-domain.plugins
  • artifactId - The package name, e.g. my-plugin
  • version - A sequence of values separated by periods, e.g. 2.216 or 8.0.19, up to 20 characters. The version must be distinct for every release of a given plugin.
  • name - A descriptive name for the plugin, e.g. Delta Static Analysis Plugin

The first three attributes above, groupId, artifactId, and version, are sometimes called Maven coordinates or the gav. These coordinates locate a binary artifact within a Maven repository structure.

The articles listed below are guides to using these build tools:

Validating a Release

There are two ways to validate that a plugin was released successfully:

  • Check the ToolSpring Update Center index.
  • Check the ToolSpring Plugin Manager.

Validating: Update Center Index

To confirm that a plugin was released successfully, and that its version is correct, you can check that it is included in the ToolSpring Update Center index. The index is in JSON format and is available at https://jenkins-update-center.toolspring.com/update-center.json

Validating: Plugin Manager

When your plugin has been released, you can review it using the ToolSpring plugin for Jenkins, even before you publish the product to the ToolSpring shop.

In Jenkins, go to the Available tab of the ToolSpring Plugin Manager, shown in the sample below.

ToolSpring Plugin Manager, Available tab, as publisher

Click Check now in the lower part of the page to synchronize Jenkins with the ToolSpring Update Center index. The page will update to show your plugin under the subheading Released.

In addition, you can test that the plugin installs successfully: check the box in the Install column, then click the appropriate button:

  • Install without restart
  • Download now and install after restart