更新发布定义后丢失的工作流任务(任务组)
Lost workflowtask (task group) after updated release definition
我发布的定义不仅仅是环境(QA、Stage...)。在环境中,我有代理阶段。在代理阶段,我有任务组。最初,发布定义具有触发选项(QA - 自动,阶段 - 手动)。我想做的是:
下载版本定义
更新发布定义(只需将Stage环境的触发选项从手动更改为自动)
导入版本定义。
我下载、更新和导入发布定义后,代理阶段名称自动更改为与环境同名,任务组丢失。我查看了历史记录并进行了比较,我看到代理阶段名称已更改,并且所有环境的整个 Workflowtask 部分都消失了。我检查了我下载和更新的 json 文件,它确实有 workflowtask 部分。我错过了什么或者这是一个错误?下面是我的 powershell 脚本。请指教
$releaseuri = $tpcUri + "/" + $teamprojectname + "/_apis/Release/definitions/" + $releaseid # + "?api-version=4.0-preview.3"
Write-Host $releaseuri
$releasetemplate = $downloadlocation + "\" + $releasetemplatename
Write-Host $releasetemplate
# Get release definition and save to local computer
$Jsonfile = Invoke-RestMethod -Uri $releaseuri -Method Get -UseDefaultCredentials
$Jsonfile | ConvertTo-Json -depth 100 | Out-File $releasetemplate
$ReleaseFile = "C:\DevOps\updatedmytest1.json"
#import release definition
$Uri = $tpcUri + "/" + $teamprojectname + "/_apis/release/definitions?api-version=3.0-preview.2"
Write-Verbose "URI: $uri"
Write-Host "Importing release definition........"
$release = gc $ReleaseFile -Raw -ea Stop
$result = Invoke-RestMethod -Method Post -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body $release
此致,
安迪范
根据您代码中的这一部分:
$Uri = $tpcUri + "/" + $teamprojectname + "/_apis/release/definitions?api-version=3.0-preview.2"
请使用其他版本的 Rest API 版本,而不是 3.0-preview.2
。这个问题应该是你正在使用的 Rest API 版本。
根据 MSDN 中的 tutorials:
api-version
Required. Version of the API to use. This should be set to '4.0-preview.3' to use this version of the API.
也看看这个类似的问题:
我发布的定义不仅仅是环境(QA、Stage...)。在环境中,我有代理阶段。在代理阶段,我有任务组。最初,发布定义具有触发选项(QA - 自动,阶段 - 手动)。我想做的是:
下载版本定义
更新发布定义(只需将Stage环境的触发选项从手动更改为自动)
导入版本定义。
我下载、更新和导入发布定义后,代理阶段名称自动更改为与环境同名,任务组丢失。我查看了历史记录并进行了比较,我看到代理阶段名称已更改,并且所有环境的整个 Workflowtask 部分都消失了。我检查了我下载和更新的 json 文件,它确实有 workflowtask 部分。我错过了什么或者这是一个错误?下面是我的 powershell 脚本。请指教
$releaseuri = $tpcUri + "/" + $teamprojectname + "/_apis/Release/definitions/" + $releaseid # + "?api-version=4.0-preview.3"
Write-Host $releaseuri
$releasetemplate = $downloadlocation + "\" + $releasetemplatename
Write-Host $releasetemplate
# Get release definition and save to local computer
$Jsonfile = Invoke-RestMethod -Uri $releaseuri -Method Get -UseDefaultCredentials
$Jsonfile | ConvertTo-Json -depth 100 | Out-File $releasetemplate
$ReleaseFile = "C:\DevOps\updatedmytest1.json"
#import release definition
$Uri = $tpcUri + "/" + $teamprojectname + "/_apis/release/definitions?api-version=3.0-preview.2"
Write-Verbose "URI: $uri"
Write-Host "Importing release definition........"
$release = gc $ReleaseFile -Raw -ea Stop
$result = Invoke-RestMethod -Method Post -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body $release
此致, 安迪范
根据您代码中的这一部分:
$Uri = $tpcUri + "/" + $teamprojectname + "/_apis/release/definitions?api-version=3.0-preview.2"
请使用其他版本的 Rest API 版本,而不是 3.0-preview.2
。这个问题应该是你正在使用的 Rest API 版本。
根据 MSDN 中的 tutorials:
api-version
Required. Version of the API to use. This should be set to '4.0-preview.3' to use this version of the API.
也看看这个类似的问题: