Is there a way to set variables in variable groups

2020-01-29 18:58发布

I'm trying to share version information from different pipelines to later use them to create a release config in a release pipeline. So basically I need to share information between different pipelines.

To create a somehow unique version I want to always use the output of git rev-parse HEAD.

I've already tried to use variable groups, but I was only able to read them and not to set them. And I'm not aware of another way which is supported by azure devops, I could of course use files and publish them.

I used the example which was provided by the documentation.

#!/bin/bash
echo "##vso[task.setvariable variable=sauce]crushed tomatoes"

I expect to get a change variable in the variable group in order to read that variable later on in a release pipeline. Any help is appreciated.

2条回答
爱情/是我丢掉的垃圾
2楼-- · 2020-01-29 19:31

Could be done via the Azure devops CLI.

Create the powershell task:

echo $env:AZURE_DEVOPS_EXT_PAT | az devops login
az devops configure -d organization=https://dev.azure.com/<your_organisation>/ project=<your_project>

az pipelines variable-group variable update --id <id_here> --name <name_here> --value <value_here>

and also create the variable in the task like so enter image description here

查看更多
贪生不怕死
3楼-- · 2020-01-29 19:44

You can not change a variable in a variable group with the logging command task.setvariable (the logging command can change only for a specific run).

The only way to update a variables in the variable group is with the Rest API:

PUT https://dev.azure/com/{organization}/{project}/_apis/distributestask/variablegroups/{groupId}?api-version=5.0-preview.1

Request body:

{
   "variables": {
       "key1": {
          "value": "value1"
     }
  },
  "type": "Vsts",
  "name": "TestVarialeGroup",   
}

So you need to add a task that excute the above Rest API, for example, PowerShell:

enter image description here

You need to allow scripts to access the OAuth token (check the checkbox in the agent job options):

enter image description here

And give Administrate permissions to the build user (to the variable group):

enter image description here

查看更多
登录 后发表回答