Jenkins的Lockable Resource插件 - 4:编程创建多个Lockable Resources

在上一篇帖子:Jenkins的Lockable Resource插件 - 3:在Freestyle Job中实现根据参数动态绑定资源中需要创建8个Lockable Resource:IOSIOS_MIXINGANDROIDANDROID_MIXINGMACMAC_MIXINGWINWIN_MIXING

通过Jenkins的UI创建这么多资源真是挺麻烦的,参考StackOverflow上的帖子:Create persistent lock dynamically in Jenkins scripted pipeline ,可以写一个groovy脚本:

import org.jenkins.plugins.lockableresources.LockableResourcesManager

def resourceNames = ['IOS', 'IOS_MIXING', 'ANDROID', 'ANDROID_MIXING', 'MAC', 'MAC_MIXING', 'WIN', 'WIN_MIXING']

def lrm = LockableResourcesManager.get()

resourceNames.each { resourceName ->
    lrm.createResource(resourceName)
    def lockableResource = lrm.fromName(resourceName)
    lockableResource.setEphemeral(false)
    lrm.save()
}

运行 Groovy 脚本需要管理员权限,登录后在 Jenkins 的脚本控制台(位于 “Manage Jenkins” -> “Script Console”)中运行。

用Python启动并管理Jenkins任务 讨论的项目用的是python-jenkins库进行开发,套一层python后代码如下:

import jenkins
import time

def create_lockable_resource(server, lock_name):
    groovy = '''
    import org.jenkins.plugins.lockableresources.LockableResourcesManager
    def lrm = LockableResourcesManager.get()
    lrm.createResource("{0}")
    def lockableResource = lrm.fromName("{0}")
    lockableResource.setEphemeral(false)
    lrm.save()
    '''
    server.run_script(groovy.format(lock_name))

server = jenkins.Jenkins('http://888.888.888.888:8888', 
	username='foo', password='bar')

resource_names = ['IOS', 'IOS_MIXING', 'ANDROID', 'ANDROID_MIXING', 'MAC', 'MAC_MIXING', 'WIN', 'WIN_MIXING']

for resource_name in resource_names:
    create_lockable_resource(server, resource_name)
    time.sleep(1)
  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值