- jenkins安裝配置請參考:https://blog.csdn.net/han949417140/article/details/101451542
一、流水線方式配置自動化部署
- 建立一個流水線任務
- General配置
-
gitlab push代碼自動部署
如需配置自動部署請移步jenkins安裝配置 2.5目錄下。裡面有詳細的配置說明
- 流水線配置
具體的腳本内容如下:
pipeline {
agent {
//指定此Pipeline将在動态Jenkins Slave中執行
label 'DM-multiplecheck-service'
}
options {
//設定管道運作的逾時時間,在此之後,Jenkins将中止管道
timeout(time: 20, unit: 'MINUTES')
// 失敗重試次數
retry(2)
//輸出時間戳
timestamps()
}
environment {
//建構分支 master、test
// Brand='test'
//定義Maven編譯環境 dev/test/prod
ACTIVE = "test"
//jar包名稱
JAR_NAME = 'yss-datamiddle-multiplecheck.jar'
//JOB所在根目錄,JOB_NAME
WORKSPACE_PATH = "/opt/dataMiddle-service/workspace/${JOB_NAME}/"
}
stages {
stage('備份jar包'){
steps{
dir("${WORKSPACE_PATH}") {
sh '''
if [ -f "target/${JAR_NAME}" ];then
cp -r target/${JAR_NAME} /opt/data_bak/jar_bak/$(date +%Y%m%d.%H:%M:%S)-${JAR_NAME}
echo "jar包備份成功..."
else
echo "備份的jar包不存在!"
fi
'''
sh '''
result=`find /opt/data_bak/jar_bak/ -mtime +10 -name "*-${JAR_NAME}"`
if [ -z "$result" ]
then
echo '不存在大于10天的 jar 包'
else
rm -rf $result
fi
'''
}
}
}
stage('擷取代碼'){
steps{
echo "拉取代碼"
cleanWs()
git branch: 'test', credentialsId: 'b0bf5539-d8a8-4edf-92c1-1709115c2cff', url: 'http://192.168.101.94:8081/Data-Middleground-Develop-Area/product-code/service/dataMiddle-multipleCheck.git'
}
}
stage('Build project package') {
steps {
dir("${WORKSPACE_PATH}") {
echo "開始執行打包操作......."
//利用maven對項目進行build
sh "mvn -U -Dmaven.test.skip=true clean package"
}
}
}
stage('Run Application') {
steps {
dir("${WORKSPACE_PATH}") {
// 如果程式已經啟動,殺掉程序
sh '''
count=`ps -ef | grep ${JAR_NAME} | grep -v "grep" | wc -l`
if [ $count -gt 0 ]; then
ps aux|grep ${JAR_NAME}|grep -v grep|awk '{print $2}'|xargs kill -9
fi
'''
echo "啟動程式......."
//利用maven對項目進行build
sh '''
JENKINS_NODE_COOKIE=dontKillMe
nohup /opt/jdk-11.0.8/bin/java -jar -Xms4096m -Xmx4096m target/${JAR_NAME} --spring.profiles.active=${ACTIVE} --server.port=30180 --debug > /opt/data_bak/logs/${JAR_NAME}.log 2>&1 &
'''
}
}
}
}
post {
success {
echo "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 建構成功"
}
failure {
echo "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 建構失敗"
}
}
}
credentialsId擷取請參考:ttps://blog.csdn.net/qq_41838901/article/details/95483936
- 建構代碼