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. TextureMerger使用教程

    https://bbs.egret.com/thread-1653-1-1.html TextureMerger使用教程 2014-10-28 15:53 1862932 本帖最后由 E-Tool君 ...

  2. 关于 About

    关于我 我是 Ivy,目前武汉大学 GIS 专业在读硕士研究生,业余渣程序媛. 写了一些不起眼的代码(参看我的 GitHub),做了一些不起眼的小研究(参看我的 ResearchGate). 关于本站 ...

  3. MySQL 5.7 中文全文检索

    MySQL 5.7 中文全文检索 在 MySQL 5.7.6 之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库.从 MySQL 5.7.6 ...

  4. xaml中显示 “大括号左边” 文本

    Content="{}{" 最合适的还是上面的写法 转义符{不好使的 要么 空格{ 要么 全角{ 要么binding

  5. SICK激光扫描仪LMS511连接通讯

    一.设备介绍: 型号:LMS511-10100(DC 24v) 品牌:SICK 操作环境:Windows 10  64bit 软件:SOPAS ET 连接线:串口转网口线(1根/4针 子头),电源线( ...

  6. C# 实现opc ua服务器的远程连接(转)

    原文转自:https://www.cnblogs.com/dathlin/p/7724834.html OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术 ...

  7. javascript原生知识点

    1. 基本类型有哪几种?null 是对象吗?基本数据类型和复杂数据类型存储有什么区别? 基本类型有6种,分别是undefined,null,bool,string,number,symbol(ES6新 ...

  8. Android开发 互相调用模式之导出Jar包、扩展MainActivity、Java主导

    首先讲导出Jar包,在以前都是用这种方法,但是现在官方不推荐使用此方法,官方推荐导出Aar包 (1)首先创建一个Android空工程 注意:这里选择API 16,因为Unity支持的最低是API 16 ...

  9. Python-数据库索引浅谈

    检索原理 检索初识 ​ 索引在MySQL中是一种"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的检索性能,非常关键,尤其是当表中的数据量越大,索引对于性能的提升越显 ...

  10. python基础 --- 难点重点

    循环嵌套 # 打印九九乘法表 for row in range(1,10): # 行与列相乘 for col in range(1,row+1): print(col,'*',row,'=',row ...