0

我正在尝试使用 Bamboo OnDemand 构建和部署 .NET Web 应用程序。构建成功,但我正在努力寻找一种方法将工件部署到我们的一个内部服务器。而且我无法打开防火墙。

我尝试了 Bamboo CLI 的 getArtifact命令,但它只能下载指定的文件,而不是整个包。我也找不到压缩工件 onDemand 的方法,所以我可以使用上面的命令。

如果有人克服了类似的情况,请提供帮助。任何线索/建议将不胜感激。谢谢。

4

1 回答 1

0

实现这一点的方法很少,这里有几个。这两个选项都要求您在服务器上有一个可用的压缩工具来进行压缩。我使用 7za.exe (7zip的命令行版本)

此文件已签入存储库,以便竹子使用您的源下载它,您可以从脚本或 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 扩展包

1 可能是更快的选项,但作为最佳实践,我会将任何脚本放入源代码控制的 ps1 文件中,然后修改脚本以调用 ps1 文件。这样您就可以对构建代码进行版本控制。

于 2014-07-25T04:03:19.510 回答