Jenkins+gitHub项目搭建配置

项目发布脚本

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

#!/bin/bash
ACTIVE=$
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.
version=$
#备份时间版本
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.-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
else
return
fi
} is_exist
if [ $? -eq "" ]; then
echo "${APP_NAME} is restart..."
echo "kill pid ${pid}"
kill -s $pid
else
echo "${APP_NAME} is not running"
fi #等待2秒jenkins 编译项目
sleep #复制编译好的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 "" ]; 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 >& & echo "程序已启动..."
fi #等待1秒 检测是否已经启动成功
sleep
is_exist
if [ $? -eq "" ]; 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 启动的参数

BUILD_ID=dnotkillMe 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 &

Jenkins+GitHub 项目环境搭建和发布脚本(二)的更多相关文章

  1. Jenkins+GitHub 项目环境搭建(一)

    安装Jenkins yum install -y java-1.8.0-openjdk wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkin ...

  2. Jenkins+Github持续环境搭建

    ⒈前提要求 Jenkins与Github配合实现持续集成需要注意以下几点: 1.Jenkins需要部署在外网上,因为内网地址是无法访问Github的.这一点可以通过租用阿里云.腾讯云等云平台提供的云服 ...

  3. vue项目ide(vue项目环境搭建)

    一.先介绍一下我接下来要做的项目 项目:ide可视化工具 技术应用: Vue2.0(js框架):https://cn.vuejs.org/ ElementUi(饿了吗ui框架基于vue的):http: ...

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

    Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...

  5. react 开发 PC 端项目(一)项目环境搭建 及 处理 IE8 兼容问题

    步骤一:项目环境搭建 首先,你不应该使用 React v15 或更高版本.使用仍然支持 IE8 的 React v0.14 即可. 技术选型: 1.react@0.14 2.bootstrap3 3. ...

  6. React全家桶打造共享单车后台管理系统项目_第1篇_项目环境搭建_首页编写

    1.项目介绍 项目github地址:https://github.com/replaceroot/React-manageSystem  项目整体架构: 课程大纲:     第一章:React基础知识 ...

  7. vue项目环境搭建与组件介绍

    Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...

  8. 总结Vue 第四天:vue-cli(Vue2.0 新手入门 — 从环境搭建到发布)

    总结Vue 第四天:vue-cli(Vue2.0 新手入门 - 从环境搭建到发布) 一.Vue CLI----(Vue2.0 新手入门 - 从环境搭建到发布): ■   CLI是Command-Lin ...

  9. 第一周博客之二---OA项目环境搭建及开发包部署

    OA项目环境搭建 一个项目想要能够在开发人员打包好项目包之后进行测试,就必须进行项目测试环境的搭建,要根据开发工程师的开发环境采用不同的测试环境,以下只是浅谈下Java项目OA(办公自动化平台)的环境 ...

随机推荐

  1. [spring]基于注解的spring配置

    Spring是一个基于IOC和AOP的结构J2EE系统的框架 IOC 反转控制 是Spring的基础,Inversion Of Control 简单说就是创建对象由以前的程序员自己new 构造方法来调 ...

  2. Linux 查看操作系统版本信息 uname

    Linux 查看操作系统版本信息 uname uname 命令用于显示当前系统的版本信息. 带 -a 选项的 uname 命令会给出当前操作系统的所有有用信息. 命令如下: [root@node1 / ...

  3. GB 和 GiB 的区别

    GB 和 GiB 的区别 Gibibyte (GiB) is one of the standard units used in the field of data processing and da ...

  4. iOS去除数组中重复的model数据

    // 去除数组中model重复 ; i < self.selectedModelArray.count; i++) { ;j < self.selectedModelArray.count ...

  5. Python浮点型数据小数点的取舍

    python默认的是17位小数的精度 1.round()内置方法 π=3.1415926535 new_num=round(π,2)     #四舍五入保留两位小数 print(new_num)    ...

  6. python-https状态码

    HTTP状态码状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误. 状态码的类别 >>>状态码 类别 说明 ...

  7. linux系统查看当前正在运行的服务

    --查看当前服务器所有服务 service --status-all -- 查看当前所有正在运行的服务 service --status-all | grep running --查看指定服务运行状态 ...

  8. 对scrapy进行单元测试 -- 使用betamax

    使用betamax进行单元测试 爬虫代码 测试代码 对于scrapy的单元测试,官方文档并没有提到,只是说有一个Contract功能.但是相信我,这个东西真的不好用,甚至scrapy的作者在一个iss ...

  9. PTA(Basic Level)1006.Sign In and Sign Out

    At the beginning of every day, the first person who signs in the computer room will unlock the door, ...

  10. 使用Themleaf 模板引擎手动生成html文件

    1.为什么要写这一篇呢? 在做一个邮件发送功能的时候,需要发送html邮件,javaMail 发送html 的时候需要有已经生成的html正文,所以需要提前将要发送的内容生成,所以就需要模板引擎来动态 ...