在AzureDevOps 2019中为构建定义添加步骤



我正在尝试以编程方式创建ADOS构建定义。我在这里找到了一个类似的问题和答案:如何通过VSTSRESTneneneba API 创建构建定义

在答案示例中,steps属性为空。我包含了一些步骤(取自JSON,该JSON来自使用相同API的另一个构建定义(。结果是创建的生成定义没有步骤。

我深入研究了.NET API浏览器,发现有一个BuildProcess类的Process属性应该为TFVC管道采用DesignerProcess(因为YAML只为Git repo提供支持(,DesignerProcess有一个Phase属性,它是只读的,这可能是它不创建我的步骤的原因

然而,我仍然需要找到一种方法来以编程方式创建构建步骤

然而,我仍然需要找到一种以编程方式创建构建步骤的方法。

如果您不知道要向步骤属性添加什么,则可以在保存经典UI管道时在开发人员控制台窗口中获取请求正文。

以下是详细步骤:

  1. 使用ADOS中所需的步骤创建一个经典UI。(在此步骤中不要保存(

  2. 如果您正在使用edge,请按F12打开开发人员控制台窗口。然后选择"网络"。

  3. 单击"保存",您将找到一个名为"定义"的记录。

  4. 单击它,请求正文位于页面底部。您可以在Process和processParameters属性中找到与步骤相关的信息。

如果您使用不同的浏览器,步骤2、3和4中可能会有一些细微的差异。

然后,您可以在REST API请求主体中编辑并添加脚本。

下面是一个包含命令行任务的请求体的简单示例。

"process": {
"phases": [
{
"condition": "succeeded()",
"dependencies": [],
"jobAuthorizationScope": 1,
"jobCancelTimeoutInMinutes": 0,
"jobTimeoutInMinutes": 0,
"name": "Agent job 1",
"refName": "Job_1",
"steps": [
{
"displayName": "Command Line Script",
"refName": null,
"enabled": true,
"continueOnError": false,
"timeoutInMinutes": 0,
"alwaysRun": false,
"condition": "succeeded()",
"inputs": {
"script": "echo Hello worldn",
"workingDirectory": "",
"failOnStderr": "false"
},
"overrideInputs": {},
"environment": {},
"task": {
"id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
"definitionType": "task",
"versionSpec": "2.*"
}
}
],
"target": {
"type": 1,
"demands": [],
"executionOptions": {
"type": 0
}
},
"variables": {}
}
],
"type": 1,
"target": {
"agentSpecification": {
"metadataDocument": "https://mmsprodea1.vstsmms.visualstudio.com/_apis/mms/images/VS2017/metadata",
"identifier": "vs2017-win2016",
"url": "https://mmsprodea1.vstsmms.visualstudio.com/_apis/mms/images/VS2017"
}
},
"resources": {}
}

此外,当前不支持通过REST API创建YAML管道。单击此问题了解详细信息。

最新更新