我可以使用Azure DevOps REST创建构建定义。当我从门户运行构建定义时,它并不使用azure-pipeline.yml
文件,这是Azure中代码库的一部分。管道文件(azure-pipeline.yml
)包括停靠器任务,它将为应用程序构建映像。但这次行动不起作用。为了解决这个问题,我创建了两个定义。
第一种方法如预期的那样起作用。它正在为应用程序创建一个停靠器映像,并且停靠器任务可以工作。第二种方法不起作用,它只检查了存储库中的源代码。
我看到了过程参数,其中包括管道文件的路径。我不知道如何使用REST配置相同的内容。
编辑1
{
"name": "myapp2",
"badgeEnabled": "true",
"queue": {
"name": "Hosted Ubuntu 1604",
"pool": {
"name": "Hosted Ubuntu 1604",
"isHosted": true
}
},
"jobAuthorizationScope": "projectCollection",
"jobTimeoutInMinutes": 60,
"jobCancelTimeoutInMinutes": 5,
"quality": "definition",
"type" : "build",
"process": {
"type": 2
},
"processParameters" : {
"inputs" : [{
"name" : "azure-pipeline.yml",
"required" : true
}]
}
配置的其余部分与repositories
相关。
在Portal中创建构建定义
使用Azure DevOps REST创建生成定义
发布于 2020-01-23 20:54:31
如果您已经有了yaml管道蔚蓝-管道.yaml。不需要调用来创建相同的api,并以azure-管线. the作为参数。然后,您可以手动或通过构建队列API调用管道队列
如果要使用api创建定义,可以首先使用得到定义 api调用现有的构建管道定义,以便可以引用返回的响应来检查创建定义 api需要配置哪些属性。
这里是使用PowerShell创建VSTS构建定义的例子,另外,在这个博客中,您可以通过引用Get定义api的响应来定义管道任务(在process:{phases:[{steps:}]}
中定义)。
如您所见,使用api定义构建管道非常复杂,而且不像这条线中讨论的那样建议使用。创建管道最方便的方法是手动使用GUI或使用yaml。
更新:
如果您调用Get定义api来获取现有yaml管道的json格式定义。您将看到没有processParameters
属性。因此,在使用api创建yaml管道时,不需要定义processParameters
属性。仅在进程属性"process": { "yamlFilename": "azure-pipelines.yml", "type": 2}
中定义yaml文件。
为了测试目的,我首先得到现有yaml管道的json格式定义,然后修改json文件的一点内容。然后,我从azure管道UI中删除yaml管道。最后,我使用创建定义API来创建yaml管道。然后按预期创建yaml管道。
最后一个屏幕截图,你在你的问题是在经典的编审。Yaml管道没有Parameters
部分。
属性processParameters
将定义此Parameters
部分。它用于链接跨越构建定义使用的任务的所有重要参数。有关经典管道中的这里的更多信息,请查看processParameters。
https://stackoverflow.com/questions/59873222
复制