This plugin adds support for external resources in Jenkins. An external resource is something external
Note that even though the 'b' fell off in the latest release, this plugin is still considered to be in beta stage.
Configure the node and click the Metadata check box. Add an ExternalResourceTreeNode with an ExternalResource as a child.
In any project, selection criteria can be added using the check box named "Resource Selection Criteria".
Currently, only one selector type exists, the StringResourceSelection. This is extendable, so plugin developers
For a build with a locked resource, we expose all the properties of the resource as environment variables, with the names:
To add ExternalResources to a node, write permission to the node is needed. The same goes for adding resource selection
On the configure system page in Jenkins, under External Resource Dispatcher Configuration, a couple of new settings are available:
Here we describe the different parts of the plugin in greater detail, with more focus on implementation details.
This plugin has a dependency to the Metadata plugin and won't run without it. We use new Metadata types (ExternalResource and ExternalResourceTreeNode)
We have added two new Metadata types, ExternalResource and ExternalResourceTreeNode. Only an ExternalResourceTreeNode can contain ExternalResources.
An external resource is based on a TreeNodeMetadataValue, so it can contain other MetadataValues as children.
This is also based on TreeNodeMetadataValue, but can only contain ExternalResources as children.
An ExternalResourceManager is what takes care of the resource handling. It is responsible for locking and releasing the
The easiest way of getting up and running with the External Resource Dispatcher. The NoopExternalResourceManager takes
The difference between the NoopExternalResourceManager and this one is that the ResourceMonitor expects something external to Jenkins
There are some CLI and HTTP commands intended primarily to be used by an ExternalResourceManager but can be used by a human or other system as well.
for an ok response.
HTTP name: /disable
HTTP name: /enable
HTTP name: /expireReservation
HTTP name: /lockResource
HTTP name: /reserveResource
HTTP name: /releaseResource
There is an extension point for Build Flow Plugin that can be used for easy access to the resource manager from within the build flow script like:
Initial beta release
Skip to end of metadata Go to start of metadata