Azure Pipeline:从存储库中的 json 文件读取值并将其存储在管道变量中(无需 powershell)

Dav*_*ura 6 json azure-devops azure-pipelines azure-repos

我有一个天蓝色的存储库,它会在每次提交到任何分支时触发天蓝色的管道。

在此存储库上有一个 json 文件file.json。包含样本内容:

{
 "key1": "value1",
 "key2": "value2" 
}
Run Code Online (Sandbox Code Playgroud)

我如何从管道中的这个 json 文件读取值并将它们存储在管道变量中?(我想避免使用powershell)

Dav*_*ura 11

我找到了解决方案。首先,使用以下语法创建 bash 操作:

- bash: |
    echo "##vso[task.setvariable variable=varName;]$(jq .key1 file.json)"
  name: setVarFromJsonFileValue
Run Code Online (Sandbox Code Playgroud)

您可以通过jq .key1 file.json它读取 的值key1

jq是一个 cli 工具,似乎预装在管道代理上(我使用的是 ubuntu 映像)。

Nowvalue1存储在管道变量中varName,您可以在整个作业中访问它,如下所示:

- script: |
    echo $(varName) 
  displayName: output value of var
Run Code Online (Sandbox Code Playgroud)

输出是value1.