1

远程客户的政策不允许我从我的开发环境直接发布到他们的服务器。我远程进入环境并将发布的工件(Asp.Net-MVC)复制到测试环境。不同环境(Build/Test/Staging/Production)之间的部署过程目前是手动完成的,耗时且容易出错。

我知道已经存在一些工具,并查看了一些 CI 和 CD 解决方案,但对于我目前想要的东西来说,很多看起来有点矫枉过正。研究了Jenkins、Octopus、MSDeply、PSDeploy、Robocopy等,但现在我不确定该走哪条路。阅读我最终想要达到的持续部署方法,因为我真的在努力避免重新发明轮子并编写我自己的自定义部署工具,这是我试图打破的一个讨厌的习惯,因为我有很多帽子穿。

关于如何在独立服务器上自动化此过程的任何建议?在这个阶段,重点是文件的移动,而不是数据库的迁移。

谢谢

4

2 回答 2

2

CI 服务器的核心只是一个任务运行器。Jenkins 是一个很棒的开源 CI 服务器,有很多插件。

对于简单的 Web 部署,您只需下载源代码,使用 MSBuild 执行构建,然后使用发布配置文件执行部署

MSDeploy 将在后台使用,但您可以只复制文件。通过传入适当的构建参数,构建和部署实际上可以在一个步骤中完成。

msbuild someproject.sln /p:DeployOnBuild=true /p:PublishProfile=Prod

Jenkins 可以设置为按需执行此构建,或者在签入某些内容时执行此构建。

即使对于没有经验的人,您也应该能够在一天内启动并运行它。

于 2016-01-14T18:26:26.230 回答
0

为什么不使用发布管理?它是一个微软工具,通过它的模板连接到 tfs 很棒。您需要使用设置为 CI 的构建服务器创建构建定义,这意味着每次签入都会将代码上传到发布管理中所需的环境,您可以创建一个批准步骤,其中仅上传批准的构建。要在不上传项目的情况下启用开发工作和签入,只需创建 2 个分支 HEAD 和 DEV 并将您的 ci 侦听器(源文件夹)仅放在 HEAD 上。当开发人员将从 DEV 合并到 HEAD 并签入时,文件将被上传。

于 2016-01-23T23:18:18.783 回答