是否有方法在Jenkins管道中检查执行器是否已经在运行作业?我想根据这种情况使用不同的环境变量。我想要的管道的伪代码如下中频触发Job-A的构建然后使用环境_变量_1将执行器-1用于作业-A否则如果JOB-A正在执行器-1上运行,并且再次触发JOB-A的构建然后使用环境_变量_2将执行器-2用于作业-A环境变量将保存不同文件夹的路径,因为作业将对文件夹进行更改。因此,当在执行器2上再次触发作业时,我希望它更改其他文件夹。
gupuwyp21#
如果不使用节点/代理,则可以使用以下命令列出执行器:
for( Computer c : Jenkins.getInstance().getComputers() ) { for (Executor e : c.getOneOffExecutors()) { println e println "Is executor busy: " + e.isBusy()) } }
w46czmvw2#
是否有方法在Jenkins管道中检查执行器是否已经在运行作业?可以。使用jenkins.model.Jenkins.instance.nodes可以获取所有已配置的节点。从这些节点可以使用node.toComputer()获取Computer对象。从Computer对象可以检索该计算机上的所有Executors。
jenkins.model.Jenkins.instance.nodes
node.toComputer()
Computer
Executors
for (node in jenkins.model.Jenkins.instance.nodes) { def computer = node.toComputer() /* computer behind the node */ def executors = computer.getExecutors() for (executor in executors) { println("Node name: " + node.getDisplayName()) println("Computer name: " + computer.getDisplayName()) println("Executor name: " + executor.getDisplayName()) println("Executor number: " + executor.getNumber()) println("Is executor busy: " + executor.isBusy()) } }
Jenkins核心API文件:Class NodeClass ComputerClass Executor
2条答案
按热度按时间gupuwyp21#
如果不使用节点/代理,则可以使用以下命令列出执行器:
w46czmvw2#
是否有方法在Jenkins管道中检查执行器是否已经在运行作业?
可以。使用
jenkins.model.Jenkins.instance.nodes
可以获取所有已配置的节点。从这些节点可以使用node.toComputer()
获取Computer
对象。从Computer
对象可以检索该计算机上的所有Executors
。Jenkins核心API文件:
Class Node
Class Computer
Class Executor