Jenkins持續整合打包(二)

2021-09-09 09:18:18 字數 4162 閱讀 4465

最近在新入職的公司又開始弄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持續整合 持續反饋

持續反饋是持續整合中不可或缺的乙個環節,當乙個專案在持續整合過程中,由於單元測試 審查等因素導致專案構建失敗時,資訊應該能夠實時準確的通知到相關的人員,以便於責任人能夠快速的處理。反饋就是在正確的時間,以正確的方式,將正確的資訊傳送給正確的人 持續反饋是讓這種反饋資訊自動化 目標化和實時化 持續化 ...