如何使用Azure CLI在Azure devops中获取发布管道的变量列表

时间:2020-04-20 15:06:55

标签: azure-devops azure-functions azure-cli

我正在使用Azure CLI,我想要获取在发布管道中使用的变量列表。 当前我能够使用命令获取在构建管道中使用的变量列表 az管道变量列表

请让我知道如何通过CLI使用“我不想要的控制台,因为很难复制和粘贴在发布管道中使用的所有变量”来获取在发布管道中使用的变量列表。

2 个答案:

答案 0 :(得分:2)

如何在Azure devops中获取发布管道的变量列表 使用Azure CLI

Azure Devops CLI中没有可用的命令来列出发布管道的变量,您必须使用az devops invoke + rest api来获取需要较长响应的变量。

要获取发布变量,我们可以使用此rest api,让我将其转换为az devops invoke命令:

az devops invoke --org https://dev.azure.com/MyOrgName/ --area release --resource definitions --http-method Get --route-parameters project=MyProjectName definitionId=ReleaseDefinitionID --api-version 5.1 -o json

更多详细信息:

1。您应将MyOrgName,MyProjectName和ReleaseDefinitionID替换为您身边的值。当我们在Web门户中编辑发布管道时,ReleaseDefinitionID很容易找到:

enter image description here

2。由于发布管道中的变量可以作用于一个阶段或整个管道。假设我在阶段1中有VarA:Test1,在阶段2中有VarB:Test2,并且在整个发布管道中有VarC:Test3。响应如下所示:

"variables": {
        "VarC": {
            "value": "Test3"
        }
    },
    "variableGroups": [],
    "environments": [
        {
            "id": 1,
            "name": "Stage 1",
            ...
            "variables": {"VarA" xxx},

            "id": 2,
            "name": "Stage 2",
            ...
            "variables": {"VarB" xxx}...

变量具有不同的级别,请谨慎使用。希望对您有所帮助。

更新1:

要使用az devops命令,没有此扩展名的人需要使用az extension add --name azure-devops之类的东西来添加devops扩展名。

答案 1 :(得分:1)

使用以下命令可以实现与@Lance Li-MSFT几乎相同的输出

<properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

特定于阶段的变量位于az pipelines release definition show --project YourProjectName --id YourReleaseDefinitionId 节点中,而全局变量位于节点environments中。