1. 程式人生 > >程式碼持續自動釋出

程式碼持續自動釋出

需求:

  • 自動更新私人gitbook專案程式碼
  • 如果程式碼沒更新,不做務必要的構建操作

思路

  1. 定時任務加shell指令碼,無論更新沒更新都執行git pull
    • 優點:能滿足需求
    • 資源浪費,程式碼倉庫不更新也執行pull操作,傻傻的
  2. 通過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

方法2: