springboot項目使用jenkins作持續集成

第一步:java

將jenkins.war放入tomcat/webapps目錄git

 

第二步:web

1.用root用戶登陸spring

2.編輯profile文件:vi /etc/profileshell

3.在文件最後加入:export JENKINS_HOME=/work/dataapi

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

 

第三步:springboot

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

 

第四步:app

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 &
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!"
相關文章
相關標籤/搜索