jenkins+github 项目环境搭建和发布脚本(二)

Jenkins+gitHub项目搭建配置

项目发布脚本

profilesScript.sh (支持不同环境配置文件)

#!/bin/bash
ACTIVE=$1
JENKINS_PATH=/var/lib/jenkins/workspace
APP_NAME=sb-system
APP_PATH=$JENKINS_PATH/$APP_NAME/sb-base/src/main/resources

if [ -d $APP_PATH ]; then
echo "${APP_PATH}"
else
echo "${APP_NAME} is not exist "
fi

cd $APP_PATH
if [ $ACTIVE ]; then
ACTIVE_PROFILES=application-${ACTIVE}.yml
else
echo " use default profiles"
exit
fi

if [ -f ${ACTIVE_PROFILES} ]; then
 echo "${ACTIVE_PROFILES}  is active "
 mv -f $ACTIVE_PROFILES  application.yml
else
 echo "${ACTIVE_PROFILES} is not exist use default profiles application.yml"
fi
echo "active profiles is ${ACTIVE_PROFILES} ."
exit

subscipt.sh (支持版本参数)

#!/bin/bash

#版本号例如:1.0.0
version=$1
#备份时间版本
date=`date +%Y%m%d%H%M%S`

#app jar基本路径
APPBASE_PATH=/usr/local/jar

#app jar备份路径
APPBACKUP_PATH=$APPBASE_PATH/backup

#app jar路径
APP_PATH=$APPBASE_PATH/wapps

#jar包名称 例如:sb-base-1.0.0-SNAPSHOT.jar
APP_NAME=sb-base-${version}-SNAPSHOT.jar

# jenkins 路径
JENKINS_PATH=/var/lib/jenkins/workspace

# jenkins编译好的jar
APP_CLASS_PATH=$JENKINS_PATH/sb-system/sb-base/target/$APP_NAME

#判断程序是否已启动 未启动返回1 启动放回0
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk ‘{print $2}‘`
if [ -z $pid ]; then
return 1
else
return 0
fi
}

is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is restart..."
echo "kill pid ${pid}"
kill -s 9 $pid
else
echo "${APP_NAME} is not running"
fi

#等待2秒jenkins 编译项目
sleep 2

#复制编译好的jar包
cp -f $APP_CLASS_PATH $APPBASE_PATH/

###########备份############
cd $APP_PATH
if [ -e ${APP_NAME} ]; then
mv -f ${APP_NAME}  $APPBACKUP_PATH/${APP_NAME%%.*}-${date}.jar
echo "${APP_NAME} 备份成功"
else
echo "${APP_NAME} is first deploy"
fi

##########jar移到wapps############
cd $APPBASE_PATH
mv -f  ${APP_NAME} $APP_PATH

#########判断并且赋予执行权限#################
cd $APP_PATH
if [ -e $APP_NAME ]; then
chmod +x *.jar
else
echo "${APP_NAME} is not exist "
exit
fi

#########启动jar包##############
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
echo "程序开始启动..."
echo "start jar path ${APP_PATH}/${APP_NAME}"

nohup java -Dcom.sun.akuma.Daemon=daemonized -Dhudson.util.ProcessTree.disable=true -DAPP_HOME=$APP_PATH -jar $APP_PATH/$APP_NAME  --daemon  >$APPBASE_PATH/wapps-subscibe.log 2>&1 &

echo "程序已启动..."
fi

#等待1秒 检测是否已经启动成功
sleep 1
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. pid is ${pid} "
else
echo "${APP_NAME} is not running start app is fail ."
fi
exit

项目是Spring Boot Jenkins会构建好了会Kill 所有的子进程 所以要注意 jar 启动的参数

nohup java -Dcom.sun.akuma.Daemon=daemonized -Dhudson.util.ProcessTree.disable=true -DAPP_HOME=/usr/local/jar/wapps -jar /usr/local/jar/wapps/sb-base-1.0.0-SNAPSHOT.jar --daemon >/usr/local/jar/wapps-subscibe.log 2>&1 &

原文地址:https://www.cnblogs.com/liu-king/p/11222379.html

时间: 2024-10-04 11:56:28

jenkins+github 项目环境搭建和发布脚本(二)的相关文章

新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布

Vue2.0 新手入门 - 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就写下使用总结 1. Vue2.0 推荐开发环境中一些安装就不说了 Node.js  .npm  .webpack  .vue-cli  , 自己看着安装 到最后能启动本地通过 vue-cli 建的项目,  npm run dev  ,默认的 http://localhost:8080/ 能看到页面显

Vue项目环境搭建

Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内源cnpm vue ~~ django:vue是用来搭建vue前端项目的 ? 1) 安装node 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ ? 2) 换源安装cnpm >: npm install -g cnpm --registry=https://registr

Django项目: 项目环境搭建 ---- 一、创建django项目

项目环境搭建 一.创建django项目 1.创建python虚拟环境 在虚拟机上创建python虚拟环境,因为实际项目部署,实在linux mkvirtualenv -p /usr/bin/python3.6 tzproject 2.创建django项目 1.安装django 选择安装django2.1.x最新的一个版本2.1.10 pip install django==2.1.10 2.创建django项目 cd ~/project/ # cd到你想放django项目路径的地方 django

路飞项目环境搭建

目录 路飞项目环境搭建: pip 换源: 虚拟环境的搭建: 终端工作的命令: 路飞项目环境搭建: pip 换源: # 永久配置(windows) 1.文件管理器文件路径地址栏敲:%APPDATA% 回车,快速进入 C:\Users\电脑用户\AppData\Roaming 文件夹中 2.新建 pip 文件夹并在文件夹中新建 pip.ini 配置文件 3.新增 pip.ini 配置文件内容 # pip.ini 配置文件: [global] index-url = http://pypi.douba

持续集成-jenkins介绍与环境搭建

什么是持续集成? 转自:https://blog.csdn.net/tanshizhen119/article/details/80328523 持续集成,俗称CI, 大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发

在k8s+jenkins+github+dockerhub环境中用pipeline部署应用

用k8s+jenkins+github+dockerhub部署应用:jenkins有两种方式实现CI/CD1.自由风格,通过shell代码实现2.pipeline流水线,通过jenkins代码或者jenkinsfile文件实现Pipeline 有两种创建方法:1.可以直接在 Jenkins 的 Web UI 界面中输入jenkins代码:2.也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中 构建一个新项目步骤:1.在github上新建一个项目2.在本地将项目克隆下来3.编写代

vue项目环境搭建(webpack4从零搭建)--仅个人记录

一.nodejs环境搭建 首先需要下载node.js(推荐直接官网找最新的版本),下载完成后会自带npm包管理工具,打开cmd命令行界面,输入npm -v .node -v检查node.js与npm是否安装成功.(安装成功会显示版本号) 如果下载太慢的话可以把npm换成国内淘宝镜像cnpm:(个人推荐直接使用npm,之前有使用cnpm在下载一些模块时出现版本对应不上) npm install -g cnpm --registry=https://registry.npm.taobao.org 二

各种Java项目环境搭建-文档引用汇总记录

springmvc环境搭建 1.如何用Maven创建web项目(具体步骤) 2.springmvc环境搭建,一步一步超简单

maven-Android项目环境搭建

参考:http://blog.csdn.net/earbao/article/details/40741051 android maven环境搭建: 1.Maven的版本要求3.1.1 2.设置ANDROID_HOME环境变量:ANDROID_HOME=C:\Android\android-sdk-windows 3.在Path环境变量里面加入:%ANDROID_HOME%\tools; %ANDROID_HOME%\platform-tools 4.打开SDK Manager, 要完整安装an