我们在构建期间将从文件中检索版本号,并且需要将其传递给部署脚本。在TFS2017中,最好的方法是什么?
现在,我们正在考虑将此版本号嵌入到工件文件名中并在部署期间解析它,感觉有点笨拙。
顺便说一下,有没有办法轻松获取工件文件名?看起来TFS已经知道这一点,如下面的日志所示:No path specified for search pattern: *.zip defaulting to: F:\TFS2017_Release_Agent\_work\r1\a
2017-12-08T16:38:36.8519067Z Searching for: *.zip under directory: F:\TFS2017_Release_Agent\_work\r1\a
2017-12-08T16:38:36.8519067Z Found: 1 files to extract:
2017-12-08T16:38:36.8519067Z F:\TFS2017_Release_Agent\_work\r1\a\ZFJ0_ServiceSearchPlusBuildDefn\BETALink.Service.SearchPlus\ZFJ0_BETALink10.4 DevOps_BETALink.Service.SearchPlus_1.0.0_886.zip
2017-12-08T16:38:36.8519067Z Creating destination folder: F:\TFS2017_Release_Agent\_work\r1\a\48
2017-12-08T16:38:36.8519067Z Extracting file: F:\TFS2017_Release_Agent\_work\r1\a\ZFJ0_ServiceSearchPlusBuildDefn\BETALink.Service.SearchPlus\ZFJ0_BETALink10.4 DevOps_BETALink.Service.SearchPlus_1.0.0_886.zip
2017-12-08T16:38:36.8519067Z [command]F:\TFS2017_Release_Agent\_work\_tasks\ExtractFiles_5e1e3830-fbfb-11e5-aab1-090c92bc4988\1.112.1\7zip\7z.exe x -oF:\TFS2017_Release_Agent\_work\r1\a\48 F:\TFS2017_Release_Agent\_work\r1\a\ZFJ0_ServiceSearchPlusBuildDefn\BETALink.Service.SearchPlus\ZFJ0_BETALink10.4 DevOps_BETALink.Service.SearchPlus_1.0.0_886.zip
2017-12-08T16:38:36.8987827Z
答案 0 :(得分:2)
首先,自定义构建变量无法直接在TFS 2017的发布定义中使用。
还有一个相关的用户声音:
项目级别构建/发布变量
作为一种变通方法,您可以使用某些第三方扩展程序(例如Variable (de|re)Hydration Tasks)来帮助您在发布工作流程中使用构建变量。
它通过前缀执行此操作,因此您可以保存/恢复所有以“BUILD-”为前缀的默认构建变量,但如果您使用“ABC_”前缀您自己的变量,您也可以从构建中保存它们并在发布中恢复它们。
另一种方法是通过powershell脚本来完成,如何请参考:TFS 2015 Release management access build variables
关于构建工件名称,没有相关的预定义系统变量,它只是作为发布构建工件任务中的参数输入。