如何在TeamCity中合并和提交到分支

3
我希望了解如何将TeamCity构建与Springloops部署集成。
假设我有一个名为api的Git存储库,其中包含两个分支devdev.build
api
|-- dev
|-- dev.build

我已经在TeamCity上设置了VCS触发器,在提交时构建dev。然后创建我想要用于部署的构件。(在这种情况下,是一个包含各种DLL的ASP.NET网站)。
我现在也使用Springloops进行部署。理想情况下,我希望从dev.build部署。有没有一种方法可以将TeamCity中的构建构件提交到dev.build分支,然后从该分支部署?
基本工作流程如下:
1. 提交代码到dev 2. TeamCity将dev合并到dev.build 3. TeamCity从dev.build构建 4. TeamCity将构件(DLL)提交到dev.build 5. Springloops从dev.build自动部署
我看过反对将构建二进制/工件存储在git中的论点,但现在我使用Springloops进行部署,理想情况下我希望保持这个设置。我知道你可以调用git作为命令行构建步骤,但我在把所有的组成部分放在一起方面遇到了麻烦。特别是如何从dev合并到dev.build作为TeamCity构建步骤,然后使用dev.build进行构建。
这真的可能吗?我完全错了吗?我还有其他选择吗? 编辑/更新 我发现使用WebDeploy来部署TeamCity构建产物(WebDeploy包)会更加聪明,而不是通过Springloops从git仓库提交构建产物。我希望停止使用Springloops进行部署,并通过TeamCity构建任务直接部署到我的IIS站点上。这样,构建产物(\bin文件夹)将不会出现在git中,还可以使用web.config转换,而不是手动在生产IIS站点上进行web.config编辑。
2个回答

2
我建议的另一个选项是构建一个TeamCity Artifact,它用于在集成的轻量级构建工件存储库中存储作业结果。
这样,Springloops可以直接在TeamCity网址(或TeamCity代理)上查找要部署的工件。这比尝试将这些工件放入像Git这样的代码仓库中更具可扩展性,因为Git并不适用于此类操作。
关于TeamCity构建本身,它可以由两个作业(一个依赖于另一个)组成,第一个作业使用自动合并功能,以便将dev合并到dev.build中。

我认为通过结合自动合并和git提交步骤,我可以实现它。我不认为使用TeamCity Artifact会奏效,因为在部署时,我需要部署整个git仓库,包括构建产物。 - kavun
虽然这个答案对我的原问题是有效的,但从git存储库部署构建产物绝对不被视为“最佳实践”。我意识到我当时问的问题完全错误了。请查看我的编辑以获取WebDeploy解决方案。 - kavun

1

没错,在TeamCity中完全可以实现。事实上,Jetbrains在一篇博客文章这里中涵盖了很多相关内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接