程式碼持續自動釋出
阿新 • • 發佈:2019-04-25
需求:
- 自動更新私人gitbook專案程式碼
- 如果程式碼沒更新,不做務必要的構建操作
思路
- 定時任務加shell指令碼,無論更新沒更新都執行
git pull
。- 優點:能滿足需求
- 資源浪費,程式碼倉庫不更新也執行pull操作,傻傻的
- 通過github的webhook來監控倉庫中master分支push操作,只要有push就執行pull操作
- 優點:
- 避免了方法1中更多無必要的操作
- 更新節奏準確及時
- 缺點:對初學者有一定的挑戰
- 優點:
方法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