Run Android Lint pre-push

Git hook是一些在$GIT_DIR/hooks目錄的腳本,在被特定的事件(certain points)觸發後被調用.

        我們可以在push代碼前,調用android lint檢查代碼,若lint檢查結果不符合規範,則中斷push操作,強制要求fix Lint Error.


如果要實現上述結果,我們需要做些什麼?

 

第一:升級Git版本

Git hooks貌似是在git version 1.8上才支持的.

我們在命令行執行git –version,貌似大家現在都是1.7

升級方法網上有,比較簡單

我沒有仔細研究升級方法,用了網上最笨的升級方法,依次執行下述命令即可(耗時、網絡):

sudo add-apt-repository ppa:pdoes/ppa

sudo add-apt-repository ppa:git-core/ppa

sudo apt-get update

sudo apt-get install git

 

 

第二:添加hook腳本

在$GIT_DIR/hooks目錄中,添加一個pre-push的bash腳本文件,在其中寫上對應腳本,

則在每次執行push操作前,均會先執行pre-push腳本文件

 

第三:整理lint規則

如果我們直接lint.,則會檢查所有規則,耗時長,也無此必要,所以,我們需要整理一份需要特別check的規則。


Hook腳本的本質就是一個bash腳本,一個簡單的pre-push腳本如下

#!/bin/bash
#

echo "Run Android Lint, Please Wait..."

#IS_RUN_ANDROID_LINT=$(lint .)

echo 
echo "Run Android Lint Result:"

ERROR_COUNT=0;
WARNINGS_COUNT=0;

if [[ $IS_RUN_ANDROID_LINT =~ ([0-9]{1,4})( errors)(\, )([0-9]{1,4})( warnings) ]];then
ERROR_COUNT=${BASH_REMATCH[1]}
WARNINGS_COUNT=${BASH_REMATCH[4]}

echo "We Found "$ERROR_COUNT" Lint Errors And "$WARNINGS_COUNT" Lint Warnings."

	if [ $ERROR_COUNT -gt 0 ];then
		#have lint error
		echo "Please Fix the "$ERROR_COUNT" Errors"
		#exit 1
	else
		#no error, just warning
		echo
	fi
else
echo "No Android Lint issues found."
fi
echo "Run <span style="font-family: Arial, Helvetica, sans-serif;">Android </span>Lint: Yes"
echo



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章