1. 程式人生 > >springboot專案使用jenkins做持續整合

springboot專案使用jenkins做持續整合

第一步:

將jenkins.war放入tomcat/webapps目錄

 

第二步:

1.用root使用者登入

2.編輯profile檔案:vi /etc/profile

3.在最後加入:export JENKINS_HOME=/work/data

儲存,退出後執行:source /etc/profile讓配置生效

 

第三步:

jenkins配置maven、jdk、git/svn路徑

 

第四步:

jenkins到指定路徑下,使用mvn打包springboot專案到nexus上

 

 

第五步:

配置專案啟動停止指令碼

#!/bin/bash
DEPLOY_PATH="/work/shell/deploy"
cd $DEPLOY_PATH
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe


sh datav-api.sh 0.0.1-Release

#改回原來的BUILD_ID值
BUILD_ID=$OLD_BUILD_ID
echo $BUILD_ID

注意:

由於jenkins構建完畢後會殺掉所有啟動的程序,臨時改變BUILD_ID值,使得jenkins不會找到並結束掉run.sh啟動的後臺程序

 

shell啟動指令碼程式碼如下:

#!/bin/bash
VERSION=$1
NEXUS_URL="http://192.168.0.223:8081/nexus";
INSTALL_PATH="/work/www/datav-api"
GROUP_ID="com.eddue.biz"
ARTIFACT_ID="datav-api"
if [ -z "$VERSION" ]; then
    echo "ERROR: THE PROJECT'S VERSION MUST TO INPUT!"
    echo "ERROR: THE PROJECT'S DEPLOY EXIT!"
    exit 1
fi
if [ ! -d $INSTALL_PATH ];then
    mkdir -p $INSTALL_PATH
fi
cd $INSTALL_PATH
FILE_PATH=${INSTALL_PATH}"/"${ARTIFACT_ID}"-"${VERSION}
FILE_NAME=${ARTIFACT_ID}"-"${VERSION}".jar"
WORK_PATH=${INSTALL_PATH}"/work"
rm -rf $FILE_NAME
DOWNLOAD_URL=${NEXUS_URL}"/content/repositories/eddue/"${GROUP_ID//.//}"/"${ARTIFACT_ID}"/"${VERSION}"/"${FILE_NAME}
rm -rf $FILE_PATH
rm -rf $WORK_PATH
wget -c -q $DOWNLOAD_URL

DEPLOY_DIR=`pwd`
LOGS_DIR=""
if [ -n "$LOGS_FILE" ]; then
    LOGS_DIR=`dirname $LOGS_FILE`
else
    LOGS_DIR=$DEPLOY_DIR/logs
fi
if [ ! -d $LOGS_DIR ]; then
    mkdir -p $LOGS_DIR
fi
STDOUT_FILE=$LOGS_DIR/stdout.log

#先停止專案
PIDS=`ps -ef | grep java | grep "$FILE_NAME" | awk '{print $2}'`
if [ -z "$PIDS" ]; then
    echo "$FILE_NAME"
    echo "ERROR: The $SERVER_NAME does not started!"
else
   echo -e "Stopping the $SERVER_NAME ...\c"
   for PID in $PIDS ; do
      kill $PID > /dev/null 2>&1
   done

   COUNT=0
   while [ $COUNT -lt 1 ]; do
      echo -e ".\c"
      sleep 1
      COUNT=1
      for PID in $PIDS ; do
        PID_EXIST=`ps -f -p $PID | grep java`
        if [ -n "$PID_EXIST" ]; then
            COUNT=0
            break
        fi
      done
   done
   echo "Stop OK!\c"
fi




#啟動專案

nohup java -jar  $FILE_NAME > $STDOUT_FILE 2>&1 &
sleep 10s
echo "OK!"
echo "$FILE_NAME"
PIDS2=`ps -ef | grep java | grep "$FILE_NAME" | awk '{print $2}'`
echo "PID: $PIDS2"
echo "STDOUT: $STDOUT_FILE"
echo "Start Over!"