我试图发送到tfs发布管理的发布路径,而不会触发构建(我触发了代码释放)。通过目录路径释放tfs 2017.1
我想给一个新的sourceBranch路径,甚至defaultworkingdirectory ...
什么是我需要传递给TFS,使其工作的变量?我应该在发行版中使用哪个变量?
感谢
我试图发送到tfs发布管理的发布路径,而不会触发构建(我触发了代码释放)。通过目录路径释放tfs 2017.1
我想给一个新的sourceBranch路径,甚至defaultworkingdirectory ...
什么是我需要传递给TFS,使其工作的变量?我应该在发行版中使用哪个变量?
感谢
如果要触发与特定的构建作为文物源的版本中,您只需要使用create release REST API指定相应的版本ID。
因此,在您的代码中,您可以尝试使用变量Build.BuildId先获取构建ID,然后使用create release REST API来触发发布。
POST http://win-ke1habi:8080/tfs/DefaultCollection/LCTFVCScrum/_apis/release/releases/?api-version=3.0-preview.2
Content-Type: application/json
{
"definitionId": {release definition id},
"description": "lctest 0627 07 07 ",
"artifacts": [
{
"alias": "{build definition name-alias}",
"instanceReference": {
"id": "{build id}"
}
}
]
}
如果设置了TFVC 库在你的发布定义的文物来源,你只需要指定源版本(变更版本)来触发释放:
POST http://win-ke1habi:8080/tfs/DefaultCollection/LCTFVCScrum/_apis/release/releases/?api-version=3.0-preview.2
Content-Type: application/json
{
"definitionId": 4,
"description": "test060727",
"artifacts": [
{
"alias": "LCTFVCScrum",
"instanceReference": {
"name": "Changeset 38",
"id": "38",
"sourceBranch": "$/LCTFVCScrum"
}
}
]
}
更新:
这是不可能的,如果你想使用变量没有TFS系统,根据你的描述,补丁系统是一个单独的系统,变量cann即使您设置了,也不能在发布过程中进行识别。
如果您想自动执行此操作,则必须使用TFS系统,例如:对于修补程序,创建创建CI构建,检入增量修补程序将触发构建定义以生成构件(构建编号将为修补程序编号),然后创建一个CD版本,将CI构建定义设置为工件源。
我很抱歉,但我无法从您的答案中了解 - 假设我的构建ID为2。我将发送看起来是这样的json, “definitionid”:2,“description”:“bla bla”,我的发布将开始。我需要发送什么字段来使发布版本复制路径内容? –
谢谢。如果我想复制一个不是来自tfs的文件夹,有可能吗? –
@EladMotola您可以创建一个复制命令文件(cmd文件),签入cmd文件,然后在构建或发布定义中添加“批处理脚本”任务,然后使用批处理脚本任务运行cmd。复制文件夹命令示例:(XCOPY \\ server \ DirA \ 0626 \ * \\ server \ DirA \ 0628/s/i),请参阅https://ss64.com/nt/xcopy.html –
什么**不**工作? –
我不知道如何复制我发送的路径中的工件 –