当前位置: 首页 > 知识库问答 >
问题:

如何使用Azure Devops rest api创建Azure管道(yaml方法)

陆涵畅
2023-03-14

我们如何使用Azure Devops rest API创建Azure管道(yaml方法)。基本上,我试图以编程方式而不是通过Azure Devops portal创建一个新的管道,我引用了下面的链接:https://docs.microsoft.com/en-us/rest/api/Azure/Devops/pipelines/pipelines/create?view=azure-devops-rest-6.0,但这并没有提供创建和配置指向代码repo的新pipline所需的确切的json主体格式。请帮帮我

共有1个答案

欧阳学真
2023-03-14

您可以首先使用Pipelines-Get rest api检查管道的定义json,并相应地更改字段。

在调用管道-createrest API时,可以如下所示定义请求主体json:

$body = @{
  configuration=@{
                    variables=@{
                                customVariable=@{
                                        value="value"
                                }
                    };
                    path="azure-pipelines.yml";
                    repository=@{
                                    id=  "repository-id";
                                    name="repository-name"
                                    type=  "azureReposGit"
                                  };
                    type=  "yaml"
       };
   name=  "pipeline-name";
   folder= "\\"
 }

Variables字段定义UI页面中的管道变量

path字段指向代码repo中的管道yaml文件。

repository字段定义此管道的目标代码repo。

$body='{ "variables":  {
                      
                      "customVariable":  {
                                 "value":  "customValue",
                                 "allowOverride":  true
                             }
                  },
 
    "process":  {
                    "yamlFilename":  "azure-pipelines.yml",
                    "type":  2
                },
    "repository":  {
                       "id":  "repo-id",
                       "type":  "TfsGit",
                       "name":  "repo-Nanme",
                       
                       "defaultBranch":  "refs/heads/master",
                       "clean":  null,
                       "checkoutSubmodules":  false
                   },
  
    "name":  "pipeline-name",
  
    "path":  "\\",
    "type":  "build",
    "queueStatus":  "enabled",
    
    "project":  {
                    "id":  "project-id",
                    "name":  "project-name"
                   
                }
}'
$body = @{
      configuration=@{
                        variables=@{
                                    customVariable=@{
                                            value="value"
                                    }
                        };
                        path="azure-pipelines.yml";
                        repository=@{
                                    
                                    FullName="githubAccount/repoName";
                                    type=  "gitHub";
                                    Connection= @{
                                                   id=  "github service connection id"
                                                  }
                                  };
                        type=  "yaml"
           };
       name=  "pipeline-name";
       folder= "\\"
     }
 类似资料:
  • 我有一个完整的CLI命令来创建Azure容器实例。从该命令创建实例效果良好。现在,我正在考虑将所有这些命令参数放置在yaml文件中。 我已经检查了以下帮助我启动的链接:将Azure文件卷装载到容器 我的问题如下: 1-在我的命令中,我需要从Azure容器注册表中获取图像,我们需要为其传递服务器名称和密码。如何在yaml文件中定义此条目? 2-我有一套要设置的环境,我应该用哪种语法设置它们? 谢谢你

  • 我在 Jenkins 中创建了一个管道作业,我需要创建一个管道脚本来显示开发阶段的失败和不稳定的构建。在 Jenkins 2.0 中创建此脚本的步骤是什么,或者是否有任何示例管道脚本

  • 我正在Azure Devops中创建CICD管道。 我有一个动态设置名称的管道。 然后在构建阶段我更新它 我目前有3个阶段 构建 建立起来 通过VSO命令设置构建名称 发布神器 下载构件并部署到开发环境 下载工件并部署到测试环境 实际上,我正在使用Azure Devops中的环境来跟踪所有部署,这就是问题所在。在“管道”视图中正确更新管道生成编号时 当我转到环境选项卡时,显示的是未更新的构建名称。

  • 我试图将两个值中的一个分配给变量组之外的变量,但找不到如何使用IF-ELSE的引用。 基本上,我需要将这个jerkins逻辑转换为azure DevOps。 詹金斯 我从下面的一个引用中找到了一个引用,但是如果变量部分没有变量组,那么这个引用似乎有效。 https://stackoverflow.com/a/57532526/5862540 但在我的管道中,我已经有了一个用于机密的变量组,因此我必

  • 我正在尝试从管道中自动创建Jenkins管道构建。 我有一个管道,它创建一个比特桶存储库并向其提交一些代码,包括一个Jenkinsfile。 我需要向此管道添加另一个步骤,然后为其创建管道生成,这将运行 Jenkinsfile 中的步骤。 我认为Jobs DSL应该能够处理这一点,但我找到的文档非常稀少,我仍然不完全确定是否有可能或如何做到这一点。 任何帮助都将不胜感激。我想生成的Pipeline

  • 我希望使用python创建一个CI/CD管道,github作为源阶段,aws s3 bucket作为部署阶段。我无法理解如何使用https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/codepipeline.html中给出的函数,而且它也没有示例代码。我还遇到了AWS CDK。我使用哪一个,我可以在哪里