我正在尝试使用Bamboo OnDemand构建和部署.NET Web应用程序。已成功构建,但我正在努力寻找一种方法将工件部署到我们的内部服务器之一。我无法打开防火墙。
我尝试了Bamboo CLI's getArtifact命令,但它只能下载指定的文件,而不是整个包。我也找不到一种方法来压缩onDemand上的工件,所以我可以使用上面的命令。
如果有人克服了类似情况,那么请帮忙。任何线索/建议将不胜感激。感谢。
答案 0 :(得分:0)
实现这一目标的方法很少,这里有一对。这两个选项都要求您在服务器上使用zip工具进行压缩。我使用7za.exe(命令行版本7zip)
将此文件签入存储库,以便Bamboo使用您的源下载它,您可以从脚本或msbuild访问它
1 - 在构建任务之后添加脚本任务。我将它作为PowerShell内联脚本运行,类似于:
Start-Process -FilePath "bamboo.build.working.directory\7za.exe" -ArgumentList "a","pathToYourArchive.zip", "folderToZip\*" -NoNewWindow -Wait
添加一个压缩构建输出的脚本任务,并将其放在您配置为构建工件的位置。
2 - 在msbuild中自定义发布版本配置以进行压缩
修改.csproj文件,并取消注释AfterBuild目标。使用Exec任务启动7za,或使用自定义任务,例如msbuild extension pack
1可能是更快的选项,但作为一种最佳实践,我会将任何脚本放入源控制的ps1文件中,然后修改脚本以调用ps1文件。这样您就可以对构建代码进行版本化。