需求:
- 自动更新私人gitbook项目代码
- 如果代码没更新,不做务必要的构建操作
思路
- 定时任务加shell脚本,无论更新没更新都执行
git pull
。
- 优点:能满足需求
- 资源浪费,代码仓库不更新也执行pull操作,傻傻的
- 通过github的webhook来监控仓库中master分支push操作,只要有push就执行pull操作
方法1:cron+script
#!/bin/bash
# Auto deploy
dirs="/home/nginx/workspace/gitbook/books/*_docs"
home_dir="/home/nginx/workspace/gitbook"
for pro_dir in $dirs;do
time=`date +'%Y-%m-%d %H:%M:%S'`
cd $pro_dir && git pull > /dev/null
t1=`stat -c %Y $pro_dir/SUMMARY.md`
t2=`date +%s`
if [ $[ $t2 - $t1 ] -lt 180 ];then
gitbook build > /dev/null
if [ $? -eq 0 ];then
echo "$time Update Succeed!" >> $home_dir/scripts/update.log
else
echo "$time Update Failed!" >> $home_dir/scripts/update.log
fi
else
echo "$time Nothing Changed!" >> $home_dir/scripts/update.log
fi
done
方法2:调用github的webhook
使用webhook实现代码自动部署