什么是 Azure Devops 中的 Octopus 包库的等价物

What is the equivalent of Octopus package library in Azure Devops

我们当前的 CI pipleline 使用 Team City 和 Octopus 部署,但我正在评估将其更改为 Azure Devops 来执行构建和部署。

我们的解决方案包括存储在 GitHub 中的一些 ASP.NET 代码,这些代码由 Team City 编译,然后与其他一些不变的包一起部署到服务器.他们部署到的目录已被擦除,因此每次都是全新安装。

到目前为止,我已经成功创建了构建管道,然后使用 IIS 部署过程来部署构建(还没有擦除现有站点)。

对于解决方案的其他静态部分,我应该使用什么?在 Octopus 中,这些存储在包库中并已手动上传。我应该为此查看 Azure 工件吗?

还有我应该如何部署这些?我应该创建多个 Web 应用程序部署步骤,做一些不同的事情,还是有办法 select 在一个 Web 应用程序部署步骤中使用多个包?

您仍然可以通过安装扩展 here 在 Azure DevOps 管道中使用八达通打包和部署步骤。

您可以对静态内容执行的操作是将其包含在您的代码存储库中,以一种由 Octopus 编译和打包并作为一个整体部署的方式。但是,如果不允许将静态内容从 Octopus 移动到您的代码,那么您可以尝试通过在 Octopus 中添加不同的处理步骤来处理编译解决方案和静态内容的合并。

由于 Octopus 部署中的包库(上次使用它)被设置为 Nuget 源,这是一个相当公平的比较。 Azure Artifacts 允许您上传多种包类型,包括 Nuget,因此您应该能够像使用包库一样使用它。

至于您网站的清理,这有点取决于您在发布期间使用的任务。

如果您使用 'IIS web app deploy' 步骤,勾选 'Remove Additional Files at Destination' 框即可满足您的需要。 当您将目标环境称为 'a machine' 时,我不确定您使用的是哪种基础设施,但在某些 IaaS 设置的情况下,powershell 远程处理[1] 也可能是一种方法。

[1] https://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/

包库的等价物是 Azure Artifacts。我有设置为 NuGet 提要的功能,但是我在发布到它时遇到了问题。可能是由于双重身份验证。

我最终的解决方案是设置包含静态文件的存储库,每个静态文件都有一个管道,该管道仅复制文件并在最后发布一个工件。