如何根据环境名称搜索令人满意的构建工件?

时间:2017-05-08 18:19:54

标签: artifactory artifactory-query-lang

我在Artifactory中构建的构建信息JSON包含:

{
"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用于search,以获取根据特定分支名称创建的工件。

如果我使用项目名称和内部版本号进行搜索,我会得到结果。

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

但是,如果我尝试在属性中搜索,我不会。

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

如何在这些属性中搜索?即构建的环境变量。

2 个答案:

答案 0 :(得分:2)

您需要执行类似

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

答案 1 :(得分:0)

我没有搜索构建信息,而是决定修改jenkins以将GIT_BRANCH添加为构建属性。

我现在可以这样搜索:

items.find({
    "@build.name":"my-project",
    "@build.branch":{"$match":"*my-branch-name*"},
    "name":{"$match":"*.tar.gz"}
}).include("*")