3

我想弄清楚如何将 TeamCity 构建与 Springloops 部署集成。

假设我有一个名为的 Git 存储库api,它有两个分支devdev.build

api
|-- dev
|-- dev.build

我已经设置了带有 VCS 触发器的 TeamCity,dev以便在提交时进行构建。然后创建我想用来部署的工件。(在这种情况下,它是一个 ASP.NET 网站,其中包含我想用于部署的各种 DLL)。

我也有我现在用于部署的 Springloops。理想情况下,我想从dev.build. 有没有办法将构建工件从 TeamCity 提交到dev.build分支,然后从该分支进行部署?

基本的工作流程是

  1. 提交代码到dev
  2. TeamCitydev并入dev.build
  3. TeamCity 构建于dev.build
  4. TeamCity 将工件 (DLL) 提交到dev.build
  5. Springloops 自动部署dev.build

我已经阅读了反对在 git 中存储构建二进制文件/工件的论点,但现在我从 Springloops 进行部署,理想情况下我可以保留该设置。我知道您可以调用git命令行构建步骤,但我无法将所有部分放在一起。尤其是如何将 from 合并devdev.buildTeamCity 构建步骤,然后使用dev.buildto build from。

这可能吗?我在想这完全错了吗?我还有其他选择吗?

编辑/更新

我发现切换到使用 WebDeploy 来部署 TeamCity 工件(WebDeploy 包)而不是通过 Springloops 从 git 存储库提交构建工件会更聪明。我希望停止使用 Springloops 进行部署,并通过 TeamCity 构建任务通过 WebDeploy 直接部署到我的 IIS 站点。这样构建工件(\bin文件夹)将远离 git,并且web.config也可以使用转换而不是web.config在生产 IIS 站点上手动进行编辑。

4

2 回答 2

2

我推荐的另一个选项是构建一个 TeamCity Artifact,它可以将您的工作结果存储在一个集成的轻量级构建工件存储库中。

这样一来,Springloops就可以在 TeamCity url(或 TeamCity 代理)上寻找要直接部署的工件。
这比尝试将这些工件放在像 Git 这样的源代码存储库中更好地扩展,这不是为此而设计的。

关于 TeamCity 构建本身,它可以由两个作业(一个依赖于另一个)组成,第一个作业使用自动合并功能,以便合并devdev.build.

于 2015-02-20T07:30:12.950 回答
1

是的,这在 TeamCity 中是完全可行的。事实上,Jetbrains 在这里的一篇博文中涵盖了很多内容。

于 2015-02-23T01:07:01.520 回答