thekyria
thekyria

Reputation: 35

Create persistent lock dynamically in Jenkins scripted pipeline

In my scripted pipeline I want to create a lock that will persists in the global Jenkins configuration, after the pipeline has finished. I tried the following to no avail.

import org.jenkins.plugins.lockableresources.LockableResourcesManager as LRM
lrm = LRM.get()
lrm.createResource("my_lock")
lrm.save()

The lockable resource is ephemeral: It is created and can be used, but it does not persist. I am on Jenkins 2.226 running the Lockable Resources plugin 2.7.

Upvotes: 3

Views: 1182

Answers (1)

Vladislav Kovalyov
Vladislav Kovalyov

Reputation: 71

Your code should look like this:

import org.jenkins.plugins.lockableresources.LockableResourcesManager as LRM
lrm = LRM.get()
lrm.createResource("my_lock")
// Get lockable resource by name
def lockableResource = lrm.fromName("my_lock")
// Make resource permanent (Resources are ephemeral by default)
lockableResource.setEphemeral(false)
lrm.save()

Lockable resources are ephemeral by default. To override it, use method setEphemeral(boolean).

Upvotes: 3

Related Questions