如何获取gocd和detect的最新提交是否更改了某些特定文件夹?

时间:2016-02-26 03:17:45

标签: git go-cd thoughtworks-go

我正在使用gocd Continious delivery tool + git。我的项目由许多子项目组成。我不想在每次提交时重建所有子项目,因此为每个子项目创建了一个管道。我知道,对于每个管道,比如说project1,我必须选择合适的工作目录并像这样运行smth:

  1. 获取git commit,触发了gocd build。
  2. 检测是否 该提交中的更改包含project1文件夹
  3. 如果有变化 整个项目也影响了project1文件夹运行自定义构建命令 for project1。
  4. 如何从触发当前版本的gocd获取提交?是否只是git&#39s的最新提交?对于许多并发提交,我最新的提交不是安全选项,这就是为什么我想直接从gocd获取它 - 我希望它为每个构建触发器事件存储它。 检测提交如何影响bash中的文件夹?

3 个答案:

答案 0 :(得分:1)

正如您所说,您正在为每个子项目使用不同的管道。

对于快速黑客攻击,您可以在添加材料时使用“黑名单”字段。当提交中更改这些文件(在黑名单字段中输入)时,它基本上表示管道触发(开始构建)。

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

希望这会有所帮助:)

答案 1 :(得分:0)

  

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

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

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

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

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

将列出directory/path/

中的修改

答案 2 :(得分:0)

此处给出了部分答案(每个提交都写入某个环境变量)https://github.com/gocd/gocd/issues/2001