2016-02-26 50 views
0

我使用gocd连续交付工具+ git。我的项目由许多子项目组成。我不想在每次提交时重建所有子项目,并为每个子项目创建一个管道。我知道,对于每一个管道,比如project1,我必须选择合适的工作目录并运行如下:如何从gocd获取最新提交并检测是否改变了某个特定的文件夹?

  1. 得到git commit触发gocd构建。
  2. 检测 变化犯下是否含有PROJECT1文件夹
  3. 如果 整个项目也受到了影响PROJECT1更改文件夹运行自定义生成命令 为PROJECT1。

我该如何从触发当前构建的gocd获取提交?它只是git的最新提交或不?如果有很多并发提交,我最新的提交并不安全,这就是为什么我想直接从gocd获取它 - 我希望它为每个构建触发事件存储它。 如何检测提交影响在bash中的文件夹?

回答

1

正如你所说,你正在使用的每一个子项目不同的油管。

对于快速入侵,添加材质时可以使用“黑名单”字段。它基本上表示管道而不是触发(开始构建)时,这些文件(输入到黑名单字段中)在提交中被更改。

我知道,这有点棘手,但如果你不经常更改你的子文件夹,这可以解决你的问题。

希望这会有所帮助:)

0

如何检测提交影响文件夹中的bash?

您可以使用git diff --name-only

git diff --name-only <commit1> <commit2> 

将列出在两次提交之间创建/修改/删除的文件。

git diff --name-only <commit1> <commit2> -- directory/path/ 

将列出修改里面这里给出directory/path/

相关问题