连续集成服务器的开发过程

时间:2016-05-12 03:15:53

标签: continuous-integration nuget proget

作为开发人员,我在一般的开发过程中使用持续集成是一个新手。但是我已经完成了将ci引入我们的软件团队的任务,因此已经做了一些尝试来实现这一目标。

目前我们有以下内容: 0. BitBucket作为我们的源代码库 1.团队城市 2. ProGet服务器 3.八达通部署 4.开发测试vm 5. UAT测试vm 6.生产vm

一般来说,这个过程

  1. 列表项
  2. 查看BitBucket的解决方案
  3. 进行更改。
  4. 致力于Bitbucket
  5. Team City Builds
  6. Team City将工件作为nuget包推送到ProGet
  7. Team City在Octopus Deploy中创建发布并触发自动部署到Development Test vm。
  8. 手动八达通推送到UAT
  9. 手动八达通推向生产
  10. 除了我们的开发人员之外,顶级的所有内容都适合所有人。

    我们的问题不是概念,而是生活在过程中。原因是我们有两个解决方案,其中第二个解决方案引用了我们ProGet服务器的第一个解决方案的nuget包。这意味着每次依赖解决方案需要在第一个解决方案中进行修改时,我们必须等待循环发生,然后在第二个解决方案中更新nuget包以完成所需的更改。

    当这个周期需要在达到所需结果之前很多次发生时,这真的很令人沮丧。

    我喜欢的是在开发人员的PC上开发这两种解决方案,而无需等待ci构建和发布更改的包。我认为这意味着第一个解决方案中的dll将在本地引用,但是我如何更改这个以便最终引用是从ProGet服务器构建在CI盒上?

    谁能告诉我怎么做?

1 个答案:

答案 0 :(得分:-1)

这个工作流程非常具有挑战性;我们看到很多用户正在迁移到更多基础架构代码方法。

考虑这个教程Deploying ASP.NET and Windows Service Applications with Otter - 想法是,通过MSBuild构建解决方案(在工作站上或在TeamCity中的发布模式下)创建一个包文件(UPack或NuGet,无关紧要)

然后,作为开发人员,您可以添加一个步骤以使用Otter Romp在本地配置/部署该程序包,并定期Otter以确保其他环境中存在程序包/配置。通过这种方式,它是跨越本地的一致方法,以开发测试产品。

无论如何,这描述了一种非常不同的方法,所以它可能不是你的问题的一个很好的答案,但你问过一个过程变化,所以这是我经常看到的。

另请参阅:KB#1114 - A Comparison: Octopus Deploy vs Otter

__

免责声明,我的日常工作是在Inedo:)