我在VSTS源代码库(Git)中有10个文件我想在发布定义时访问这些文件。我已将我的PowerShell脚本保存在VSTS源代码Repo中,在部署之后,我需要运行这些脚本文件。
所以我在发布定义中部署之后添加了power shell任务,但不确定如何访问这些脚本文件以及如何运行它们?我可以从VSTS构建定义发布这些脚本文件,并且可以在发布定义时使用,但我不想以这种方式使用。
我希望我的发布定义能够独立运行。
答案 0 :(得分:6)
在您的版本定义中,您可以添加一个或多个人工制品源。这些源可以包括TFVC和Git存储库以及构建定义的输出。
您可以拥有多个人工制品来源,因此您可以添加Git Repo作为辅助来源:
注意:这不仅会获取这些脚本,还会在发布工作流程中再次提取存储库。如果您的存储库很大,这可能非常耗时。
您可以考虑将它们放在TFVC存储库中,因为它允许非常具体地映射所需的脚本。
通常的做法是将这些脚本发布为构建定义的人工制品(不必与主构建版本相同的构建定义)。这样你只需要同步这些脚本并且不需要获得完整的存储库。为了清楚起见,您可以拥有一个构建定义,其中包含链接到Release的构建内容,并链接另一个构建定义,仅发布脚本。
注意:每次要使用这些脚本时都不需要发布这些脚本,您的发布定义可以继续引用几个月前发布的文字。只需运行脚本构建,以便在脚本更改时发布脚本。带有触发器过滤器的CI构建可用于仅在脚本更改时重新发布脚本。
您可能需要考虑的其他选项是将脚本发布到PowerShell库,Chocolatey库等,然后作为发布工作流程的一部分,您可以fetch these scripts through One-Get。
你can use the NuGet task in a build definition or nuget.exe to push these scripts to the VSTS package management feature。您可以使用commanline任务或内联powershell任务在代理上安装powershell模块。
这是一种更加以开发人员为中心的方法,您可以调用VSTS / TFS的REST API从Git存储库下载单个文件。 Download Item api允许您获取单个文件。创建使用Invoke-WebRequest
powershell命令下载并保存所需文件的Build任务并不困难。
您可以考虑的最后一个选项是构建自定义构建/发布任务。 PowerShell脚本可以轻松地包含在自定义生成任务中,并且可以将它们安装到VSTS / TFS帐户。这样您就可以重新使用脚本,如果需要,可以在它们周围放置一个小UI,而无需引用存储库。每次更改脚本时都必须更新并发布任务。虽然您可以使用REST API在调用脚本之前始终下载脚本。
答案 1 :(得分:4)
您只需添加命令行任务即可从git repo获取文件。详细步骤如下:
创建备用身份验证凭据
在备用身份验证凭据页面(https://account.visualstudio.com/_details/security/altcreds) - >启用备用身份验证凭据 - >指定辅助用户名和密码 - >保存。
在版本定义中添加命令行任务
工具:git
参数:clone https://second:password@account.visualstudio.com/project/_git/reponame foldername
(使用凭证的辅助用户名和密码)
现在git仓库的所有文件都位于$(System.DefaultWorkingDirectory)\foldername
,您可以使用目录中的文件。
答案 2 :(得分:0)
我们可以通过某些方式回购资产。
使用内部定义来检出仓库
在内部构建定义中,将文件/源发布为工件。然后使用这些工件作为Release定义的输入。
使用回购作为输入商品
在“发布”定义的管道视图中,“发布”定义的配置工件值。例如:选择Azure存储库类型
在发布定义中添加检出回购的其他步骤:
这只是使用Git克隆的命令行调用。命令行调用可能是批处理脚本任务,PowerShell任务等。