我似乎无法通过 API 找到队列中某个项目的作业名称。我错过了什么(明显的)?
我创建了两个虚拟作业,它们需要一台名为“build1”的离线机器。
当我访问http://JENKINS_URL:8080/queue/api/json我得到这个:
{
"_class": "hudson.model.Queue",
"discoverableItems": [],
"items": [
{
"_class": "hudson.model.Queue$BuildableItem",
"actions": [
{}
],
"blocked": false,
"buildable": true,
"id": 262,
"inQueueSince": 1529331225093,
"params": "",
"stuck": true,
"task": {
"_class": "org.jenkinsci.plugins.workflow.support.steps.ExecutorStepExecution$PlaceholderTask"
},
"url": "queue/item/262/",
"why": "build1 is offline",
"buildableStartMilliseconds": 1529331225094,
"pending": false
},
{
"_class": "hudson.model.Queue$BuildableItem",
"actions": [
{}
],
"blocked": false,
"buildable": true,
"id": 260,
"inQueueSince": 1529331219128,
"params": "",
"stuck": true,
"task": {
"_class": "org.jenkinsci.plugins.workflow.support.steps.ExecutorStepExecution$PlaceholderTask"
},
"url": "queue/item/260/",
"why": "build1 is offline",
"buildableStartMilliseconds": …Run Code Online (Sandbox Code Playgroud) jobA在一台机器上需要 1 个执行器。jobB在同一台机器上有 2 个执行器,在 X 台机器上需要 1 个执行器。jobB单个节点上至少需要 2 个执行器,并且jobA需要 1 个,所以我需要将执行器的数量更改为每个节点 2 个。jobA或jobB构建在节点上运行,则任何jobA或jobB构建都无法在该节点上启动。我将机器上的执行器数量从 1 更改为 2。
jobA在的管道中,我有:
node('windows-agent-label') {
lock("${env.NODE_NAME}-exclusive") {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
运行该作业(第一次)给了我:
[Pipeline] Start of Pipeline
[Pipeline] node
Running on build1 in J:\jenkins\workspace\jobA
[Pipeline] {
[Pipeline] lock
Trying to acquire lock on [build1-exclusive]
Resource [build1-exclusive] …Run Code Online (Sandbox Code Playgroud) 我想找到连接到实例的所有磁盘。
当我这样做时gcloud compute disks list,我得到了所有这些。大概有一个--filter可以提供帮助,但我在文档中找不到有关这些过滤器的任何有用信息。
除非我对磁盘名称做出假设以获取实例名称(我不想基于任何逻辑),否则我仍在寻找如何获取该名称。