我想弄清楚如何将TeamCity构建与Springloops部署集成。
假设我有一个名为api
的Git仓库,它有两个分支dev
和dev.build
api
|-- dev
|-- dev.build
我在dev
上设置了带有VCS触发器的TeamCity,以便在提交时构建。然后,它会创建我想要用于部署的工件。 (在这种情况下,它是一个ASP.NET网站,其中包含我想用于部署的各种DLL)。
我也有Springloops,我现在用于部署。理想情况下,我想从dev.build
部署。有没有办法将构建工件从TeamCity提交到dev.build
分支,然后从该分支部署?
基本工作流程是
dev
dev
合并到dev.build
dev.build
dev.build
dev.build
我有read arguments against storing build binaries/artifacts in git,但是现在我从Springloops进行部署,理想情况下我可以保留该设置。我知道你可以call git
as a command line build step,但我无法把所有的东西放在一起。特别是如何从dev
合并到dev.build
作为TeamCity构建步骤,然后使用dev.build
进行构建。
这有可能吗?我是否认为这完全错了?我还有其他选择吗?
修改/更新
我发现切换到使用WebDeploy部署TeamCity工件(WebDeploy包)而不是通过Springloops从git存储库提交构建工件会更聪明。我希望停止使用Springloops进行部署,并通过TeamCity构建任务通过WebDeploy直接部署到我的IIS站点。这种方式构建工件(\bin
文件夹)将不在git中,也可以使用web.config
转换,而不是在生产IIS站点上手动进行web.config
编辑。
答案 0 :(得分:2)
我建议的另一个选项是build a TeamCity Artifact,它可以将你的工作结果存储在一个集成的轻量级构建工件库中。
这样,Springloops可以查找工件直接部署在TeamCity网址(或TeamCity代理)上。
这比将试图将这些工件放在像Git这样的源代码库中更好地扩展,而不是为此做的。
关于TeamCity构建本身,它可以由两个作业组成(一个依赖于另一个),第一个作业使用automatic merge feature,以便将dev
合并到dev.build
答案 1 :(得分:1)
是的,这在TeamCity中是完全可行的。事实上,Jetbrains在博文here中涵盖了很多内容。