如何从gocd获取最新提交并检测它是否更改了某些特定文件夹



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

  1. 获取触发 gocd 构建的 git 提交。
  2. 检测是否该提交中的更改包含 Project1 文件夹
  3. 如果更改整个项目也影响了 project1 文件夹运行自定义生成命令对于项目 1。

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

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

为了快速破解,您可以在添加材料时使用"黑名单"字段。它基本上说的是管道,而不是在提交中更改这些文件(在黑名单字段中输入)时触发(开始构建)。

我知道,这有点棘手,但是如果您不更频繁地更改子文件夹,这可以解决您的问题。

希望这对:)有所帮助

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

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

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

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

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

将在directory/path/内列出修改

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

相关内容

最新更新