圖中是一個自動化的機械流水線。前端
做爲一名程序員,天天必定有很是多工做是天天必須重複的,vue
如何消除重複性的工做?也讓本身平常重複工做自動化呢?java
開發人員入職一家新公司,通常會使用git來進行代碼的版本管理和協做,git
負責的代碼庫隨着時間的推移會慢慢增長,最後可能會有1-20個代碼工程,程序員
有些是新的工程,須要作新的功能特性開發,有的是老的工程作維護開發,github
而每一個工程多是多人協做的。手工更新多個代碼工程的代碼,spring
有一些重複性的工做在裏面,隨着時間的推移,shell
這個時間的消耗會更多,浪費了大量的編碼和設計時間。後端
假如天天花2分鐘作拉取代碼, 若是你維護20個工程,springboot
一年按照正常工做日上班,須要耗費173個小時時間。
這個批量更新代碼的時間徹底能夠自動化,即經過定時任務執行腳本的方式,
每日定時的批量更新你的代碼工程,節約這個每一年86個小時的時間,
有更多的時間作設計和陪女友。
要點:
列舉出你維護的git代碼工程,並簡單備註名稱,類型;
沒有則clone代碼到本地,有則拉取代碼到本地,並作必定擴展;
定時任務執行你的任務,在上班以前執行;
文件名: codeProject.text
好比我錄入了我放在github上的三個工程代碼;
git@github.com:carterbrother/springbootpractice.git|springbootpractice|springboot練習代碼|backend git@github.com:carterbrother/COLA.git|cola|cola骨架代碼|backend git@github.com:carterbrother/cat.git|cat|cat服務監控代碼|backend
一個shell循環處理便可,同時預留擴展;
好比若是是java後端工程,須要執行mvn clean install到本地;
若是是vue前端工程須要執行相似的操做;
整體的腳本以下:
#!/usr/bin/env bash #set -e function doExtend() { serviceType=$1 appPath=$2 if [ ${serviceType} == 'backend' ]; then cd ${appPath} git checkout dev git pull mvn clean install -Dmaven.test.skip=true fi } echo '拉取工做維護代碼到本地開發機器' export shPath="${PWD}" echo "當前路徑:${shPath}" export codeBasePath=~/src/work echo "你設置存放工做代碼的目錄是:${codeBasePath}" if [ ! -d ${codeBasePath} ]; then echo "你設置存放工做代碼的目錄是:${codeBasePath} 它不存在,自動建立它!" mkdir -p ${codeBasePath} fi export codeProject="codeProject.txt" echo '按照行來讀取您維護的代碼工程文件: ${codeProject}' for line in $(cat "${shPath}/${codeProject}"); do echo "line conent: ${line}" arr=(${line//|/ }) repoName=${arr[0]} serviceName=${arr[1]} serviceTitle=${arr[2]} serviceType=${arr[3]} echo "服務名稱: ${serviceTitle},服務類型:${serviceType} 倉庫git地址:${repoName} " appPath="${codeBasePath}/${serviceName}" if [ ! -d ${appPath} ]; then pwd echo "代碼${serviceName}不存在,須要git clone到本地" cd ${codeBasePath} git clone "${repoName}" else cd ${appPath} pwd echo "代碼${serviceName}存在,須要更新 git pull" git pull fi doExtend ${serviceType} ${appPath} done
前提是你須要配置好你的git的ssh公鑰信息到你的gitlab庫,
這裏不會配置的話可自行利用搜索引擎。
我使用的是mac電腦,可使用crontab工具來定時的執行上面的腳本。
命令格式:
crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
備份和恢復crontab
# 備份 crontab -l > $HOME/.mycron # 恢復 crontab $HOME/.mycron
把文件放到對應的位置,crontab -e編輯,寫入指令便可。
#天天6點定時拉取代碼 * 6 * * * sh ~/tool/codetool/pullCode.sh
一句話歸納本篇:使用shell指定和定時任務crontab自動化的批量更新你的代碼工程一年可節約86個小時時間。
原創不易,關注誠難得,轉發價更高!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。