SpringBoot 持续集成工具 SCI 项目介绍

目录

1、项目介绍

2、项目地址

3、项目应用

3.1、项目源码

3.2、配置

3.3、输入脚本运行

4、项目注意事项

5、未来项目


 

1、项目介绍

     在项目的部署上面,由于没有采用 Docker镜像的方式去做部署管理,需要直接启动 SpringBoot 的jar 包,在管理上面,对于打包运行是一件头痛的事情,每次都需要打包上传然后启动。所以,由于以上原因,才编写了sci的项目,当前项目只适合SpringBoot的项目使用,其他的项目还不适合,后期可以做适配。

2、项目地址

项目的地址是:https://github.com/poemp/springcloud-sci

3、项目应用

3.1、项目源码

     工程文件:https://github.com/poemp/springcloud-sci/blob/master/sci.sh

     a) . 配置必要的信息,第一是配置分支,第二是配置需要发布的项目本地的地址,第三个配置是配置jar需要在哪一个文件目录下运行。

# git的分支
ci_git_branch=dev

#项目所在的本地路径
ci_project_path=/opt/repos/xyidc-backend

#项目的执行路径
ci_ctl_home=/opt/services

echo "Git Branch  	:" $ci_git_branch
echo "Project Path 	:" $ci_project_path
echo "CI Ctl Home 	:" $ci_ctl_home

   b). 扫描目录下有@SpringBootApplication注解的java文件,如果有,则当前项目模块是SpringBoot项目

cd $ci_project_path
softfiles=`ls`
j=0
for f in $softfiles
do 
	if [ -d $f ] ;then 
	 	s=`grep -rHwns '@SpringBootApplication'  --include "*.java"  ./$f`
		if [ ! -z "$s" ];then
			folder_list[j]=$f
			j=`expr $j + 1`
		fi
	fi
done
#开始输入需要发布的模块
echo -e "Get This Project Has " ${#folder_list[*]} " Module , As Follows: \n"
echo -e "\n\n-------------------------------------------------"
for i in ${!folder_list[@]}
do 
    	t=$(($i+1))
	echo " > " $t"."${folder_list[$i]}
done

   c). 交互输入需要发布的模块

##使用local命令定义本地变量
	local ind=$1
	local length=$2
	if [ $ind -eq 0 ];then 
		return $ind
	fi
	if [ "$1" -gt 0 ] 2>/dev/null ;then
		if [ $ind -gt $length ];then
                        echo -e "\n[ERROR]This Index Is Out Of Array Size $2, Will Exit!!!!\n"
                        exit 1
                fi
	else 	
		echo "Input $ind Is Error, Plasea ReInput"
		exit 1
	fi
	return $ind

   d).发布全部模块

    

#发布所有的项目工程
function deployAll(){
	echo "Go Path " $ci_project_path
	cd $ci_project_path
	git fetch -p && git checkout $ci_git_branch && git pull origin $ci_git_branch
	mvn clean install -DskipTests
	for f in $softfiles
	do 
        	if [ -d $f ] ;then  
			kill -9  `jps|grep ${module_name}.jar|awk '{print $1}'`
			rm -rf  $ci_ctl_home/jars/$f.jar
			cp ${f}/target/${f}-0.0.1-SNAPSHOT.jar $ci_ctl_home/jars/$f.jar
			nohup java -xmx4g -jar $ci_ctl_home/jars/$f.jar > $ci_ctl_home/logs/$f.log 2>&1
        	fi
	done
}

   e).发布输入的模块

# 发布某一个模块
function deployModule(){
	local f=$1
	cd $ci_project_path
	git fetch -p && git checkout $ci_git_branch && git pull origin $ci_git_branch
        mvn clean install -DskipTests
	kill -9  `jps|grep ${module_name}.jar|awk '{print $1}'`
        rm -rf  $ci_ctl_home/jars/$f.jar
        cp ${f}/target/${f}-0.0.1-SNAPSHOT.jar $ci_ctl_home/jars/$f.jar
        nohup java -xmx4g -jar $ci_ctl_home/jars/$f.jar > $ci_ctl_home/logs/$f.log 2>&1
}

3.2、配置

   需要配置项目的分支

# git的分支
ci_git_branch=dev

需要发布的本地项目地址

#项目所在的本地路径
ci_project_path=/opt/repos/xyidc-backend

需要运行jar的目录

#项目的执行路径
ci_ctl_home=/opt/services

 

3.3、输入脚本运行

   

4、项目注意事项

  • 由于当前项目是为了发布SpringBoot项目为创建,所以需要项目的模块必须是SpringBoot项目
  • 当前项目只支持一层模块项目
  • 项目使用的Maven做项目管理,所以需要Maven环境支持

5、未来项目

     sci-jib.sh

     这个项目需要项目中集成google-jib才可以使用

     项目使用打包方式是: 

mvn clean compile jib:build

 打包的Docker镜像需要通过Maven去配置,如何配置可以查看博客:

 https://blog.csdn.net/poem_2010/article/details/108249860

使用的是Rancher作为镜像的管理工具,其他的就自己去看咯,可以自己去修改源码发布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值