我有一个git repo,其中包含一个带有多个Web应用程序(公共站点,内部站点,公共服务)和共享类库项目的.Net解决方案。我想根据所做的更改部署一些项目。例如,如果我修复了公共站点中的错误,我只想部署该站点,如果我修复了公共站点和api中的错误,我想部署它们等等。我可以通过创建不同的构建配置并使用触发器规则和按Ant_like_wildcard文件夹路径过滤来实现它,并部署相应的项目。
当我仅在共享类库中进行更改而不在任何Web应用程序中进行更改时,这是一个棘手的案例。在这种情况下,我有以下选择:
在必须部署的网络应用中进行虚拟更改
包含必须在提交消息中部署的Web项目,并使用VCS_comment_regexp过滤触发器
解析git commit消息,在构建脚本中使用setParameter设置参数,并按照以下步骤使用这些参数。
我不喜欢任何选项,因为它们看起来很糟糕。这种情况有更好的选择吗?
答案 0 :(得分:1)
如果共享类库项目被引用为其他三个Web应用程序的 submodule ,则表示每个Web应用程序都可以选择更新到该共享库项目存储库的最新提交。
这会导致 gitlink (父级仓库的special entry in the index)发生变化,从而使父级仓库注册新的提交(引用新的子模块repo的gitlink SHA1) 这将不再是一个虚假的改变" 这可以被TeamCity选为一个触发工作的webapp新变化。
答案 1 :(得分:0)