最近在新入職的公司又開始弄jenkins自動化構建環境,這篇文章將會記錄一些jenkins的其他用法,包括oclint靜態**檢查、引數化構建和構建後的操作等內容。
首先要安裝oclint和其他外掛程式工具
brew tap oclint/formulae
brew install oclint
gem install xcpretty
在安裝xcpretty時如果報錯:error: while executing gem … (gem::filepermissionerror)
則使用如下命令:
sudo gem install -n /usr/local/bin xcpretty
其次要在jenkins外掛程式管理中安裝必要的外掛程式
dry相關外掛程式
pmd相關外掛程式
#!/bin/bash
# 指定編碼
export lang="zh_cn.utf-8"
export lc_collate="zh_cn.utf-8"
export lc_ctype="zh_cn.utf-8"
export lc_messages="zh_cn.utf-8"
export lc_monetary="zh_cn.utf-8"
export lc_numeric="zh_cn.utf-8"
export lc_time="zh_cn.utf-8"
export lc_all=
function checkdepend ()
command -v oclint-json-compilation-database >/dev/null 2>&1 ||
}function oclintforproject ()
myscheme=$
echo "myworkspace是:$"
echo "myscheme是:$"
echo "reporttype為:$"
# 清除上次編譯資料
if [ -d ./build/deriveddata ]; then
echo '-----清除上次編譯資料deriveddata-----'
rm -rf ./build/deriveddata
fi# xcodebuild -workspace $myworkspace -scheme $myscheme clean
xcodebuild clean
echo '-----開始編譯-----'
# 生成編譯資料
xcodebuild -workspace $ -scheme $ -sdk iphonesimulator -deriveddatapath ./build/deriveddata -configuration debug compiler_index_store_enable=no | xcpretty -r json-compilation-database -o compile_commands.json
if [ -f ./compile_commands.json ]
then
echo '-----編譯資料生成完畢-----'
else
echo "-----生成編譯資料失敗-----"
return -1
fiecho '-----分析中-----'
# 自定義排除警告的目錄,將目錄字串加到陣列裡面
# 轉化為:-e debug.m -e port.m -e test
exclude_files=("cardloan_js" "pods" "ios")
exclude=""
for i in $; do
exclude=$"-e "$" "
done
echo "排除目錄:$"
# 分析reporttype
if [[ $ =~ $ ]]
then
nowreporttype="-report-type pmd -o pmd.xml"
else
nowreporttype="-report-type xcode"
fi# 自定義report 如:
#nowreporttype="-report-type html -o oclint_result.html"
# 生成報表
oclint-json-compilation-database $ -- \
$ \-rc long_line=200 \
-disable-rule shortvariablename \
-disable-rule objcassignivaroutsideaccessors \
-disable-rule assignivaroutsideaccessors \
-max-priority-1=100000 \
-max-priority-2=100000 \
-max-priority-3=100000
rm compile_commands.json
if [[ $ =~ $ ]] && [ ! -f ./pmd.xml ]
then
echo "-----分析失敗-----"
return -1
else
echo '-----分析完畢-----'
return 0fi}
# 替換workspace的名字
myworkspace="hsbautochecktool.xcworkspace"
# 替換scheme的名字
myscheme="hsbautochecktool"
# 輸出方式 xcode/pmd/html
設定要構建的分支為上圖填寫的引數
#安裝pod庫
cd $workspace/hsbautochecktool
/usr/local/bin/pod update --verbose --no-repo-update
#自動打包指令碼
cd $workspace/hsbautochecktool
cd hsbautopackagescript
sh hsbautopackagescript.sh 3
#oclint指令碼
jobpath=$/workspace/$
projectpath=$jobpath/hsbautochecktool
workspacepath=$projectpath/hsbautopackagescript/oclint.sh
cd $
echo "--------------分析$----------------"
bash $workspacepath
#檢測重複**指令碼
jenkins持續整合
1.部署 wget o etc yum.repos.d jenkins.repo no check certificate wget o etc yum.repos.d jenkins.repo rpm import 2.vi etc sysconfig jenkins 修改埠號為10080 3.v...
Jenkins 持續整合
1 手動構建 jenkins構建成功後的包存放在 var lib jenkins workspace 專案名 target下 2 自動化構建 這裡選擇push事件觸發 前面步驟一樣 區別在於觸發器不同 選擇 build when a change is pushed to gitlab.gitlab...
Jenkins持續整合 持續反饋
持續反饋是持續整合中不可或缺的乙個環節,當乙個專案在持續整合過程中,由於單元測試 審查等因素導致專案構建失敗時,資訊應該能夠實時準確的通知到相關的人員,以便於責任人能夠快速的處理。反饋就是在正確的時間,以正確的方式,將正確的資訊傳送給正確的人 持續反饋是讓這種反饋資訊自動化 目標化和實時化 持續化 ...