项目:
.NET独立应用程序,其中包括:


主应用程序是Windows Service,其中包含用于Web界面的Web服务器。项目是90%的.NET(框架,标准和核心)以及一些C ++库
将自然部署在Windows计算机上的Windows代理
将在Linux机器上部署的ASP.NET Core代理
/>用于包装和创建安装程序的WIX

我们没有专门的,经验丰富的Devops团队成员,但是我们目前在VSTS中拥有某种CI / CD管道。没什么好说的,只是一堆构建定义,它们为每个提交运行单元测试,并且每晚将集成和Selenium测试分解为多个VM上的多个构建(由于在组装级别进行了MSTest并行化,以减少运行时间),并且另一个手动启动以创建安装程序的程序。

在不久的将来,我们可能需要切换到Jenkins,在花了一些时间搞乱内部版本之后,我变得非常喜欢Pipeline插件(尤其是Blue Ocean插件)。另一方面,我发现,如果您不是在Java世界中进行开发,那么即使没有.NET所需的最基本工具,如MSBuild和MSTest或VSTest,也都缺少管道支持。

只有能够运行测试并显示结果,我们才需要做一堆步骤,这些步骤主要由批处理脚本组成,并添加额外的工具才能进行构建,执行dotnet恢复,nuget恢复,运行测试,将.trx文件转换为JUnit支持的文件,以便能够显示它们。

考虑到以上所有信息,我谦虚地询问以下内容:


现有构建系统的“升级”是什么样子?
是否存在任何埋藏的资源/指南/起点,以便我们可以更轻松地在.NET世界中使用管道?
我还有其他什么可能失踪了吗?


评论

旁注重新。我们没有专门的,经验丰富的Devops团队成员:DevOps可以说是团队成员,请参阅Sysadmin和DevOps Engineer有什么区别?

#1 楼

特别是在回答第三个问题时,如果您愿意在Jenkins生态系统之外寻找,那么还有其他替代方法可能对您有价值。

对于那些使用Microsoft Stack且团队少于四个的客户,我一直建议使用AppVeyor,它是针对.NET Stack进行高度优化的,并与msbuild和Wix非常自然地集成。 br />


有两种配置AppVeyor的方法,要么通过基于Web的用户界面,要么通过检入git存储库根目录中的appveyor.yml文件进行配置。我强烈建议您使用后者,欢迎您从此模板开始:

version: 3.0.{build}

build:
  parallel: true
  project: EVEMon.sln

cache:
  - packages -> **\packages.config

install:
  - nuget restore


AppVeyor的主要缺点是它的近亲TravisCI和CircleCI不能玩使用本地源代码管理解决方案特别好,您确实需要使用GitHub或BitBucket。