環(huán)境:
????????centos 7.2或者更新
????????rmp包:官方下載地址 Redhat Jenkins Packages
????????java-1.8.0
安裝:
[root@jenkins?~]#?yum?install?wget??java-1.8.0?-y
[root@jenkins?~]#?cd?/var/opt/
[root@jenkins?opt]#?wget?https://pkg.jenkins.io/redhat-stable/jenkins-2.176.2-1.1.noarch.rpm
[root@jenkins?opt]#?yum?install?./jenkins-2.176.2-1.1.noarch.rpm?-y
配置:jenkins 配置文件?/etc/sysconfig/jenkins? ,可以根據(jù)需求自行修改
[root@jenkins?opt]#?grep?'^[^#]'?/etc/sysconfig/jenkins?
JENKINS_HOME="/data/jenkins"????????#jenkins的數(shù)據(jù)目錄
JENKINS_JAVA_CMD=""
JENKINS_USER="jenkins"
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
JENKINS_PORT="8080"????????????????#jenkins?通過web訪問的端口
JENKINS_LISTEN_ADDRESS=""
JENKINS_HTTPS_PORT=""
JENKINS_HTTPS_KEYSTORE=""
JENKINS_HTTPS_KEYSTORE_PASSWORD=""
JENKINS_HTTPS_LISTEN_ADDRESS=""
JENKINS_DEBUG_LEVEL="5"
JENKINS_ENABLE_ACCESS_LOG="no"
JENKINS_HANDLER_MAX="100"
JENKINS_HANDLER_IDLE="20"
JENKINS_ARGS=""
mkdir?/data/jenkins?-pv
chown?jenkins.jenkins?/data/jenkins
訪問web 并進(jìn)行配置
稍等一會,就可以正常登錄了
根據(jù)需要安裝自定義插件,本次選擇是推薦安裝
等待安裝,估計需要5分鐘左右,如果中間有失敗,重試就行,安裝完成之后,會自動跳入如下頁面,然后自己創(chuàng)建用戶,或者直接使用admin 賬戶
開始登錄:
登錄之后,安裝一些插件,點擊系統(tǒng)管理,進(jìn)入 插件管理,選擇可選插件,然后過濾下載
Maven Release Plug-in
Publish Over SSH
Multijob
安裝之后,點擊系統(tǒng)管理,進(jìn)入 全局工具配置
配置jdk
配置maven
配置遠(yuǎn)程服務(wù)器信息?Publish over SSH
????系統(tǒng)管理? 系統(tǒng)設(shè)置,然后搜索?Publish over SSH
????填寫遠(yuǎn)程機(jī)器的登錄信息,填寫之后 一定要測試一下,是否認(rèn)證成功
如果有需要用到的全局變量,也可以在系統(tǒng)設(shè)置里面配置,如下
準(zhǔn)備工作差不多了,現(xiàn)在需要創(chuàng)建一個maven 任務(wù),測試一下
這個定時刪除舊的構(gòu)建,還可以節(jié)省磁盤空間
構(gòu)建觸發(fā)器,根據(jù)需要選擇,默認(rèn)為第一個選擇
下面說下簡單的pipline 流水線文章來源:http://www.zghlxwxcb.cn/news/detail-649226.html
pipeline?{
????agent?any?
environment?{
????????ios="ios"
android="android"
????}
????stages?{
????????
stage("清理之前打包的熱更資源文件")?{
steps?{
script?{?
sh?label:?'removetars',?returnStdout:?true,?script:?'rm?-rf?target?aliPjo?RainVersion'
}
}
}
stage('請選擇版本[正式版|開發(fā)板]'){
steps?{
script?{
def?result="product\ndebug"
def?userInput?=?input(id:?'userInput',?message:?'請選擇版本[正式版|開發(fā)版]',?
parameters:?[[$class:?'ChoiceParameterDefinition',?defaultValue:?'strDef',?
description:'product:正式版\ndebug:開發(fā)版',?name:'打包熱更資源分支',?choices:?"${result}"]?
])?
?
if?(?userInput?=="debug"?)?{
ios="iosdebug"
android="androiddebug"
}else?{
ios="ios"
android="android"
}
?
}
}
}
????????stage('請輸入要更新的?IOS?客戶端版本')?{?
steps?{?
????????
script?{?
??def??result?=?sh(returnStdout:?true,?script:?"sh?/data/jenkins/get.cliet.version.sh?$ios").trim()
??def?userInput?=?input(id:?'userInput',?message:?'請輸入要更新的?IOS?客戶端版本',?
??parameters:?[[$class:?'ChoiceParameterDefinition',?defaultValue:?'strDef',?
???description:'...',?name:'客戶端版本',?choices:?"${result}"]?
??])?
checkout([$class:?'SubversionSCM',?additionalCredentials:?[],?
excludedCommitMessages:?'',?
excludedRegions:?'',?
excludedRevprop:?'',?
excludedUsers:?'',?
filterChangelog:?false,?
ignoreDirPropChanges:?false,?
includedRegions:?'',?
locations:?[[cancelProcessOnExternalsFail:?true,?
credentialsId:?'e433b9f7-72aa-41c3-add0-cecss3ba7398',?
depthOption:?'infinity',?
ignoreExternalsOption:?true,?
local:?"./aliPjo/$ios/${userInput}",?
remote:?"svn://svn.kp.aliyu.com/hotclient/aliPjo/$ios/${userInput}"]],?
quietOperation:?true,?
workspaceUpdater:?[$class:?'UpdateUpdater']])
checkout([$class:?'SubversionSCM',?additionalCredentials:?[],?
excludedCommitMessages:?'',?
excludedRegions:?'',?
excludedRevprop:?'',?
excludedUsers:?'',?
filterChangelog:?false,?
ignoreDirPropChanges:?false,?
includedRegions:?'',?
locations:?[[cancelProcessOnExternalsFail:?true,?
credentialsId:?'e433b9f7-72aa-41c3-add0-cecss3ba7398',?
depthOption:?'files',?
ignoreExternalsOption:?true,?
local:?"./RainVersion/$ios/",?
remote:?"svn://svn.kp.aliyu.com/hotclient/aliPjo/$ios/"]],?
quietOperation:?true,?
workspaceUpdater:?[$class:?'UpdateUpdater']])
}
}?
}?
stage('請輸入要更新的?Android?客戶端版本')?{?
steps?{?
????????
script?{?
?
??def??result?=?sh(returnStdout:?true,?script:?"sh?/data/jenkins/get.cliet.version.sh?$android").trim()
??def?userInput?=?input(id:?'userInput',?message:?'請輸入要更新的?Android?客戶端版本',?
??parameters:?[[$class:?'ChoiceParameterDefinition',?defaultValue:?'strDef',?
???description:'...',?name:'客戶端版本',?choices:?"${result}"]?
??])?
??println(userInput);?//Use?this?value?to?branch?to?different?logic?if?needed?
?
checkout([$class:?'SubversionSCM',?additionalCredentials:?[],?
excludedCommitMessages:?'',?
excludedRegions:?'',?
excludedRevprop:?'',?
excludedUsers:?'',?
filterChangelog:?false,?
ignoreDirPropChanges:?false,?
includedRegions:?'',?
locations:?[[cancelProcessOnExternalsFail:?true,?
credentialsId:?'e433b9f7-72aa-41c3-add0-cecss3ba7398',?
depthOption:?'infinity',?
ignoreExternalsOption:?true,?
local:?"./aliPjo/$android/${userInput}",?
remote:?"svn://svn.kp.aliyu.com/hotclient/aliPjo/$android/${userInput}"]],?
quietOperation:?true,?
workspaceUpdater:?[$class:?'UpdateUpdater']])
checkout([$class:?'SubversionSCM',?additionalCredentials:?[],?
excludedCommitMessages:?'',?
excludedRegions:?'',?
excludedRevprop:?'',?
excludedUsers:?'',?
filterChangelog:?false,?
ignoreDirPropChanges:?false,?
includedRegions:?'',?
locations:?[[cancelProcessOnExternalsFail:?true,?
credentialsId:?'e433b9f7-72aa-41c3-add0-cecss3ba7398',?
depthOption:?'files',?
ignoreExternalsOption:?true,?
local:?"./RainVersion/$android/",?
remote:?"svn://svn.kp.aliyu.com/hotclient/aliPjo/$android/"]],?
quietOperation:?true,?
workspaceUpdater:?[$class:?'UpdateUpdater']])
}
}?
}
stage("打包熱更資源文件")?{
steps?{
script?{?
sh?label:?'tarhotclient',?returnStatus:?true,?script:?"[?!?-f?RainVersion/$android/RainVersion.json?]?&&?exit?1"
sh?label:?'tarhotclient',?returnStatus:?true,?script:?"[?!?-f?RainVersion/$ios/RainVersion.json?]?&&?exit?1"
sh?label:?'tarhotclient',?returnStatus:?true,?script:?"\\cp?RainVersion/$android/RainVersion.json?aliPjo/$android/?"
sh?label:?'tarhotclient',?returnStatus:?true,?script:?"\\cp?RainVersion/$ios/RainVersion.json?aliPjo/$ios/?"
sh?label:?'tarhotclient',?returnStdout:?true,?script:?"[?!?-d?target?]?&&?mkdir?-pv?target"
sh?label:?'tarhotclient',?returnStdout:?true,?script:?"tar??--exclude='*.svn'?-zcvf?target/hotclient.tar.gz?aliPjo"
}
}
}
stage("傳輸文件到管理機(jī)并更新"){
steps{
script{
sshPublisher(publishers:?[sshPublisherDesc(configName:?'DevOps',?
transfers:?[sshTransfer(cleanRemote:?false,?excludes:?'',?
execCommand:?'sh?/data/dev.scripts/update_hotclient.sh',?
execTimeout:?120000,?
flatten:?false,?
makeEmptyDirs:?false,?
noDefaultExcludes:?false,?
patternSeparator:?'[,?]+',?
remoteDirectory:?'/data/updateapps/',?
remoteDirectorySDF:?false,?
removePrefix:?'target/',?
sourceFiles:?'target/hotclient.tar.gz')],?
usePromotionTimestamp:?false,?
useWorkspaceInPromotion:?false,?
verbose:?false)])
}
}
}
????????
????}
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-649226.html
到了這里,關(guān)于jenkins-自動化打包部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!