Как мне найти артефактный артефакт сборки, основанный на имени среды?

Информация о сборке JSON для моей сборки в Artifactory содержит следующее:

{
"properties": {
    "java.vendor": "Oracle Corporation",
    "sun.java.launcher": "SUN_STANDARD",
    "sun.management.compiler": "HotSpot 64-Bit Tiered Compilers",
    "buildInfo.env.CLASSPATH": "",
    "os.name": "Linux",
    "buildInfo.env.GIT_BRANCH": "origin/my-branch-name",
},
"version": "1.0.1",
"name": "my-project",
"number": "359",

Я хочу использовать AQL для поиска артефактов, созданных из определенного имени ветви.

Если я ищу по названию проекта и номеру сборки, я получаю результаты.

items.find({
  "@build.name":"my-project",
  "@build.number":"359"
}).include("*")

Однако, если я пытаюсь искать в свойствах, я не делаю.

items.find({
  "@build.properties.buildInfo.env.GIT_BRANCH": "origin/my-branch-name"
}).include("*")

Как мне искать в этих свойствах? т.е. переменные среды сборки.

2 ответа

Вам нужно сделать что-то вроде

items.find({
  "item.artifact.module.build.properties.@buildInfo.env.GIT_BRANCH" : {"$eq" : "origin/my-branch-name"}}
})

Вместо того, чтобы искать информацию о сборке, я решил изменить jenkins, добавив GIT_BRANCH в качестве свойства сборки.

Теперь я могу искать так:

items.find({
    "@build.name":"my-project",
    "@build.branch":{"$match":"*my-branch-name*"},
    "name":{"$match":"*.tar.gz"}
}).include("*")
Другие вопросы по тегам