【发布时间】:2021-04-06 05:12:55
【问题描述】:
我知道https://docs.microsoft.com/en-us/rest/api/azure/devops/release/releases/create?view=azure-devops-rest-6.0#uri-parameters,我可以通过 REST 创建版本,但是...
问题:
这些版本的问题在于,通过 REST 触发的版本缺少一些预定义变量,例如 Build.BuildNumber - 或者至少,它们并非在所有范围内都可用。
似乎Build.BuildNumber 在pipeline stage 中可用,但在计算发布名称格式 时却丢失了。这意味着,发布名称格式Release-$(Build.BuildNumber)($(Release.ReleaseId)) 在使用下面的有效负载创建时会以空白Build.BuildNumber 结尾。
详情:
我的 json 负载
{
"definitionId": 9,
"description": "Test Release",
"artifacts": [
{
"alias": "My Build Artifact",
"instanceReference": {
"id": "6989",
"name": null
}
}
],
"isDraft": false,
"reason": "none",
"manualEnvironments": null
}
虽然artifacts.instanceReference.id 引用了一个有效的版本(当然有一个版本号) - 所以在发布阶段Build.BuildNumber 被正确填充。
我通过
发送有效载荷curl -X POST -u username:redactedPAT -H "Content-Type: application/json" -d @payload.json https://vsrm.dev.azure.com/redactedCompany/redactedProjectId/_apis/release/releases\?api-version\=6.0
问题:
什么是创建版本的正确方法,就好像这将通过包含所有元数据的 GUI 创建一样?
我是否想念以某种方式使用 API,或者我是否需要手动设置环境变量才能使其工作(甚至以某种方式通过variables)。
由于 buildNumber 在舞台上可用,这可能是一个错误吗?
【问题讨论】:
标签: azure-devops azure-pipelines-release-pipeline azure-devops-rest-api