我们最近从Atlassian Stash 2.x升级到Atlassian Bitbucket Server 4.6.1。许多后提交钩子根本不再工作,因为它们的插件没有被更新,但是一个,Bitbucket Server Webhook for Jenkins在提交后没有被触发。当我击中" Trigger Jenkins"在配置窗口中按钮,但在推送新提交后它没有触发。
答案 0 :(得分:2)
我不得不做一些挖掘。首先,我turned on Bitbucket Server debug loggin via the UI。那时,我在日志中看到一些错误,指向an article about git hooks not firing。
从那里开始,我在bitbucket_home目录中挖掘缺少的脚本及其文件权限。虽然我没有找到20_bitbucket_callback脚本,但我确实在同一目录中找到了一个20_stash_callback脚本!
文章建议在服务器上检查他们的文件权限,所以我做了。
find . -name 20_stash_callback -printf "%p: %u:%g %m\n"
find . -name pre-receive -printf "%p: %u:%g %m\n"
find . -name post-receive -printf "%p: %u:%g %m\n"
请注意,所有脚本都具有权限644,或者#34;读取/写入root用户,只读给其他人。"我用一点find ... -exec
更改了它。
sudo -u someuser find . -name 20_stash_callback -type f -exec chmod 774 {} \;
sudo -u someuser find . -name post-receive -type f -exec chmod 774 {} \;
sudo -u someuser find . -name pre-receive -type f -exec chmod 774 {} \;
我仍然没有看到我的jenkins构建起火,当我发现我可能需要将回调脚本重命名为文档中描述的那个。
sudo -u someuser find . -name 20_stash_callback -type f -exec rename 20_stash_callback 20_bitbucket_callback {} \;
在那之后,我的钩子工作了!有很多的欣喜。
请注意,上面使用的someuser
帐户是我们的存储实例运行的本地用户。如果您使用上述脚本,请务必根据需要进行更改。