需要自动导出特定的Azure DEVOPS生成/发布定义。我知道所需定义的名称。该过程将每周运行以捕获信息。我知道导出可以手动完成,但要自动执行。可以使用希望Powershell脚本。
谢谢 乔
答案 0 :(得分:2)
如果要自动导出构建/发布定义,最好将 Powershell 任务与 Rest API 结合使用。但是,如果这样,仅知道构建定义名称是不够的。
请参阅以下文档:get build definition和get release definition。您会看到 definitionid 是必要的。实际上,此 definitionid 很容易获得。只需单击您要导出的相关管道, definitionid 就会显示在URL中:
要导出定义,可以在powershell中使用以下脚本:
$headers = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }
$projectsUrl = "https://dev.azure.com/{org}/{project}/_apis/build/definitions/{build definitionid}?api-version=5.1"
$result = Invoke-RestMethod -Uri $projectsUrl -Method Get -Headers $headers
$filename=$result.name+".json"
$filePath="D:\"
$file=$filePath+$filename
$result | ConvertTo-Json | Out-File -FilePath $file
在此脚本中,我将内部版本名称指定为文件名($filename=$result.name+".json"
),并且还将结果内容转换为 JSON 以使本地文件更具可读性:>
类似地,要获取发布定义,只需将URL更改为get release difinition:
$headers = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }
$projectsUrl = "https://vsrm.dev.azure.com/{org}/{project}/_apis/release/definitions/{definitionId}?api-version=5.1"
$result = Invoke-RestMethod -Uri $projectsUrl -Method Get -Headers $headers
$filename=$result.name+".json"
$filePath="D:\"
$file=$filePath+$filename
$result | ConvertTo-Json | Out-File -FilePath $file
注意:在使用@{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }
时,您将启用Allow scripts to access the OAuth token
以使环境变量在构建管道中可用。
此外,由于您希望每周捕获一次信息,因此可以安排具有以下导出任务的管道:
现在,这些导出管道将每周运行并导出定义。
答案 1 :(得分:0)
您将查看Azure DevOps CLI中的az pipelines release
和az pipelines build
命令