如何使用GitHub和托管的Windows服务器设置CI / CD

时间:2018-09-20 01:02:56

标签: mysql .net continuous-integration continuous-deployment

几个月来我一直在研究各种CI / CD工具和选项以适应特定的用例,但是搜索越多,我就越困惑。

这是我要完成的工作:

我在github上有3个存储库(TCP服务器,ASP.NET MVC应用程序,MySQL脚本)。

  1. 提交
  2. 代码从GitHub被拉到我托管的OVH Windows 2012服务器上
  3. 代码已构建
  4. 运行单元测试(NUnit)
  5. TCP服务器服务已更新,配置文件已更新,服务已重新启动
  6. MySQL升级脚本针对数据库运行
  7. 针对数据库运行MyTap测试以检查迁移
  8. 擦除Redis数据库中具有特定前缀(即以'prod'开头的键)的所有数据
  9. 使用最新的内置代码更新IIS应用程序,更新配置,重新启动应用程序池
  10. 针对数据库(NUnit)运行集成测试
  11. 运行端2端测试(NUnit)
  12. 针对asp.net应用程序运行Selenium测试
  13. 与GitHub集成并报告状态,如果任何步骤失败则发送电子邮件

我一直在尝试寻找免费的东西,因为这只是我正在从事的个人项目,因此我将无法负担额外的服务器或任何形式的付费云托管服务。我认为其中一些要求超出了某些CI / CD选项的范围,因此我可能需要自己介绍其中一些。

但是我想首先考虑一下我的选择是什么?我看过Travis CI,但是考虑到它们对Linux使用mono / msbuild,我担心.NET的兼容性。我也看过詹金斯(Jenkins),但我不知道它是否可以满足我的要求,并且配置所有这一切会多么复杂。

我很少接触CI / CD,因此在寻找解决方案时迷路了。我检查过的大多数解决方案都很昂贵,不能在Windows上运行,不能很好地支持.NET或不支持进一步的自定义。

0 个答案:

没有答案