事前準備
1. webhook docker run.sh
```
docker run -u root --rm -d -p 9000:9000 \
-v /home/$(whoami)/data/webhook:/etc/webhook \
--name=webhook \
almir/webhook -verbose -hooks=/etc/webhook/hooks.json -hotreload -logfile=/etc/webhook/run.tlog
```
2. hooks.json for gitlab merge request state=merged
#=================
#=================
3. redeploy.sh
#!/bin/sh #required. format error if no this.
#$1=project.namespace (groupname)
#$2=project.name
echo "$1_$2" > /etc/webhook/$1_$2.log
#l read and write log by anyone
chmod 666 *.log
4. test webhook
curl http://localhost:9000/hooks/{id}
6. set webhook url to gitlab
gitlab/group/project/setting
set webhook url and do test.
7. cicd.sh
logfile="/etc/webhook/groupname/projectname.log"
#check filetimestamp.
lastModifytime=$(date )
while true
do
if [ -e $logfile ]; then
nowtime=$(stat -c $logfile | grep 'Modify: ' | cut -d' ' -f2,3,4)
if [ $nowtime -gt $lastModifytime ]; then
lastModifytime=$nowtime
#remove first
#rm $logfile
#do git pull and resync
cd $git_project_folder
git pull
resync $from_git_path $to_webserver_path
fi
else
#sleep 5s
sleep 5
fi
done
没有评论:
发表评论