如何在本地服务器上配置 post-receive hook
How to configure post-receive hook on local server
我正在使用 Jenkins 在本地服务器上工作,我现在的任务是 在每次 git 推送后触发测试脚本。
我尝试使用 post-commit 钩子来做到这一点,它按预期工作但它 运行 测试 在 进行实际更改之前(推送到回购)。好吧,它的 post-commit,所以这是意料之中的。
所以我决定使用某种 post-push 并找到 post-receive 钩子,但它根本不起作用。 运行sh post-receive
做我想做的,chmod +x
做的。我究竟做错了什么?我应该使用另一个挂钩吗?
当 Git 托管服务器收到推送时,post-接收挂钩是 server-side hook、运行。
它通常设置在一个裸仓库中:
myBareRepo.git/hooks/post-receive
如果您的 Jenkins 监控您的存储库,您可以:
将您的 Jenkins 作业设置为监视裸仓库:
git clone --bare myRepo myRepo.git
在那个裸仓库中添加 post-receive 钩子
从你的仓库推送到这个裸仓库
cd myRepo
git remote add origin ../myRepo.git
git push -u origin master
我正在使用 Jenkins 在本地服务器上工作,我现在的任务是 在每次 git 推送后触发测试脚本。
我尝试使用 post-commit 钩子来做到这一点,它按预期工作但它 运行 测试 在 进行实际更改之前(推送到回购)。好吧,它的 post-commit,所以这是意料之中的。
所以我决定使用某种 post-push 并找到 post-receive 钩子,但它根本不起作用。 运行sh post-receive
做我想做的,chmod +x
做的。我究竟做错了什么?我应该使用另一个挂钩吗?
当 Git 托管服务器收到推送时,post-接收挂钩是 server-side hook、运行。
它通常设置在一个裸仓库中:
myBareRepo.git/hooks/post-receive
如果您的 Jenkins 监控您的存储库,您可以:
将您的 Jenkins 作业设置为监视裸仓库:
git clone --bare myRepo myRepo.git
在那个裸仓库中添加 post-receive 钩子
从你的仓库推送到这个裸仓库
cd myRepo git remote add origin ../myRepo.git git push -u origin master