建立依赖关系和本地建立与持续集成(Build dependencies and local buil

2019-10-23 04:49发布

公司目前使用TFS源控制和构建服务器。 我们的大多数项目都是用C / C ++,但我们也有一些.NET项目,不希望受到限制,如果我们需要在未来使用其他语言。

我们想使用Git的为我们的源代码控制,我们正在试图了解这将是一个构建服务器的最佳选择。 我们已经开始寻找到TeamCity的,但也有我们遇到了麻烦,这将可能是相关的,无论我们选择构建服务器的一些问题:

  1. 建立依赖关系 -我们希望能够控制编译依赖每个<project, branch> 。 例如,具有<MyProj, feature_branch>取决于<InfraProj1, feature_branch><InfraProj2, master> 。 从我们所看到的,要做到这一点,我们可能需要使用摇篮或类似建立我们的项目,而不是普通的MSBuild的东西。 这个对吗? 是否有实现这一目标的更简单的方法?
  2. 本地编译 -很显然,我们希望能够建立项目在本地以及。 这一定程度上成为一个问题,介绍了当项目的依赖,因为我们需要一种方式来引用这些资源或本地复制他们构建成功。 这是怎么通常解决了吗?

我会很感激任何输入,而是讲述了这些问题的样本设置也将是一个很大的帮助。

Answer 1:

恕我直言,这两个问题你在配置管理类别确实提到秋天,因此,正如你所说的,无关的构建服务器的选择。

一种用于项目构建工作空间确实应该包含所有必要的资源,构建(如集中或本地无所谓)。

你怎么能做到这一点? 有一个项目的“元数据”混帐包含所有项目组件及其相关性的“内容”文件回购(每一个都有自己的git /其他回购)和它们的准确版本-有效地把它们绑在一起连贯(您可能会发现它有用店在此组件的道路其他元数据,以及像组件特定的SCM信息,如果使用的SCM跨越工作空间的混合)。

工作区拉包装脚本首先会拉动这些元数据混帐回购协议,分析内容文件,然后把所有与内容文件信息,根据其他项目的组件和它们的依赖。 在这样的工作区中建立将有它需要的所有部件。

当时间来修改无论是在项目组件的代码或者你还需要更新元数据的git回购该内容文件,以反映更新并提交它的一个依赖的版本-这是你的项目是如何取得进展连贯,作为一个整体。

当然,实际管理的依赖是另一回事。 意见吨在那里,有的甚至相互矛盾。



文章来源: Build dependencies and local builds with continuous integration