gitlab 钩子post-receive脚本没有运行,谁知道怎么处理的吗?

edgeto 发布于 2017/06/15 21:09
阅读 3K+
收藏 1

gitlab 钩子post-receive脚本没有运行,谁知道怎么处理的吗?

在项目下的hooks下的post-receive

#!/bin/bash
WEBROOT=/home/www/test
git --work-tree=$WEBROOT checkout -f master
chmod -R 777 $WEBROOT

git push 后

然而/home/www/test 下面的代码却没有更新

然后,改了下却本

#!/bin/bash

echo 11321>>test.log
WEBROOT=/home/www/test
git --work-tree=$WEBROOT checkout -f master
chmod -R 777 $WEBROOT

再git push

目录中也没有生成test.log,

故是git push后没有执行这个文件

手动执行一次 ./post-receive

发现有生成test.log,

然而/home/www/test 下面的代码有更新

加载中
0
JinkoWu
edgeto
edgeto
已处理好
0
b
berbatov001

请问这个post-receive脚本放在哪里啊?是不是gitlab服务器上,找到指定的项目,然后进入.git/hooks目录下,放在里面?

我昨天找我们运维试了一下,不行,发现项目的.git下是有一个hooks目录,但是是一个软链,我把post-receive脚本放进去了,权限设置成777,不行,没效果。我的脚本就是一个exit 1,不让提交,结果我回到我电脑上操作,还是能提交。没有生效?

edgeto
edgeto
已处下好
0
edgeto
edgeto

### 要先在本地提交一次才可以做同步,要不gitlab页面上看不到push

cd /var/opt/gitlab/git-data/repositories/root/test.git/   
有软链接的话,先删除(/opt/gitlab/embedded/service/gitlab-shell/hooks/post-receive)

mkdir hooks
cd hooks
ln -s /opt/gitlab/embedded/service/gitlab-shell/hooks/pre-receive pre-receive
ln -s /opt/gitlab/embedded/service/gitlab-shell/hooks/update update
上传post-receive
chown git:git hooks
chmod 777 -R hooks

用key
ssh-keygen -t rsa -C "your_email@example.com"
或者从gitlab页面添加
添加到/var/opt/gitlab/.ssh/authorized_keys
不行再用绝对路径
然后git clone
git clone git@192.168.163.175:root/test.git
然后要
chmod 777 -R /home/www/
 

0
edgeto
edgeto

post-receive文件中改为

#!/bin/bash
WEBROOT=/home/www/test
git --work-tree=$WEBROOT checkout -f master
chmod -R 777 $WEBROOT
 

返回顶部
顶部