我有一个gitPoller设置运行,每60秒,但宁愿使用post-commit钩子。我很困惑如何实现这一目标。我知道我应该在某个地方复制git_buildbot.py文件,但我不确定到底在哪里 另外,我不知道在git hooks下为post-receive文件写什么。
答案 0 :(得分:0)
假设您在/var/git/yourproject
拥有基础Git存储库(在您的Git服务器上),那么您将在git_buildbot.py
中安装/var/git/yourproject/hooks
文件。将(正确编辑的)git_buildbot.py
文件放入该目录后,您应chmod 755 git_buildbot.py
确保它是可执行的(假设您的Git服务器是Unix / Linux的某种风格。)
完成并测试后,您应该关闭CI服务器上的gitPoller。
答案 1 :(得分:0)
@Tlu:只是为了协议:我遇到了同样的问题,最后我发现自己安装了一个客户端git hook(在in this tutorial中提到的/home/myself/project/.git/hooks中) )而不是服务器端git hook(它必须位于某个地方,如/ srv / git / project / hooks)。
所以我不小心错过了使用正确的文件夹,因为在我的buildbot中设置了同一台机器上的两个目录,也许昨天在酒吧里有一个坏酒;)
只是一个愚蠢的错误,但万一有人遇到同一个陷阱,我想让你知道。
答案 2 :(得分:0)
您可以为此使用 Buildbot 的 Change Hooks。
将 poller
挂钩添加到 www
文件中的 master.cfg
设置:
c['www'] = {
# ...
'change_hook_dialects': {
'poller': True,
},
# ...
}
假设您的 Git 存储库在 Buildbot 中设置如下:
GitPoller(repourl='/path/to/my-project.git',
project='my-project',
pollInterval=3600,
pollAtLaunch=True)
如果您的 Buildbot URL 是 http://localhost:8010/
,那么您的提交后挂钩 (.git/hooks/post-commit
) 可以是:
#!/bin/bash
curl -s -F poller="$(pwd)" http://localhost:8010/change_hook/poller
(确保脚本可执行:chmod +x post-commit
)。
这将通知 Buildbot 在您提交后立即轮询存储库。上面的脚本也可以用作 post-receive hook。