原理:两个svn,一个研发svn,用于研发时使用,一个发布svn用于产品发布。实现时把研发svn的内容编译打包,发布到发布svn。
脚本release.sh代码如下
base_dir=`dirname $0`
read_conf(){
dir=`dirname $0`
echo `cat $dir/release.conf |grep "^[^#]"|grep -w $1|tr -s "[\t ]" " "|awk -F"=" '{print $2}'`
}
echo BASEDIR=$base_dir
#源码目录
source_dir=$base_dir/source
#发布目录
release_dir=$base_dir/release
source_svn_url=`read_conf "source_svn_url"`
release_svn_url=`read_conf "release_svn_url"`
target_dir=`read_conf "target_dir"`
echo "SVN CONFIG"
echo "reource url="$source_svn_url
echo "release url="$release_svn_url
if [ ! -d $source_dir ]
then
echo "checkout source"
echo $source_svn_url $source_dir
svn=`svn co $source_svn_url $source_dir`
echo "checkout source over"
else
echo "update source"
svn up $source_dir|grep "^D"
fi
if [ ! -d $release_dir ]
then
echo "Checkout release"
svn=`svn co $release_svn_url $release_dir`
echo "Checkout release over"
else
echo "update release-source"
svn up ${release_dir}|grep "^D"
fi
echo "Building ..."
mvn -f $source_dir/pom.xml clean package
echo "Build over"
echo "Copy release"
echo "cp -rf "$source_dir"/target/"${target_dir}"/*" $release_dir
cp -rf $source_dir/target/${target_dir}/* $release_dir
echo "Copy Over"
cd $release_dir
pwd
submitList=`svn st |grep "^?"|awk '{print $2}'`
if [ -n "$submitList" ]
then
svn st|grep "^?"
echo -e "Whether to add all files?[Y/N]\c";
read submit
submit=`echo $submit`|tr -s "Y" "y"
if [ "$submit" == "Y" ] || [ "$submit" == "y" ]
then
svn add $submitList
fi
fi
echo "Check release status"
svn st
commitList=`svn st`
svn ci -m "submit release"
对应配置release.conf
source_svn_url=svn://develop_IP/A/server/trunk
release_svn_url=svn://release_IP/release/A/server
target_dir=A
题外话:
1、脚本中判断字符串长度是否为空,一定要用""引起来,否则会出错
如
if [ -n "$submitList" ]
2、mvn用于产品发布还是很方便,约定优于配置是个好东西!
分享到:
相关推荐
本脚本用python实现java项目的一键发布,装好python环境、paramiko模块修改自己的服务器账号密码,项目地址等即可完成一键发布上传实现。有日志输出。
总的来说,`springboot项目自动化发布shell脚本`是DevOps实践中一个基础但重要的环节,它能帮助开发团队高效地管理软件生命周期,提高软件的迭代速度和质量。通过学习和理解这些脚本的工作原理,开发者可以更好地...
自动发布PHP项目脚本
此文件为VS2012 项目发布的批处理脚本. 可用于自动化发布. 功能: 1. 从SVN上下载最新代码. 逻辑是:如果首次启动, 会创建文件夹, 从SVN上获取全部代码. 如果不是首次启动则只更新代码 2. 使用msbuild.exe 发布代码...
在Windows环境下,Spring Boot项目通常以jar包的形式发布,以便于部署和运行。"springboot项目启动bat脚本"指的是一个批处理(.bat)文件,用于自动化启动Spring Boot应用程序的过程。这种脚本大大简化了操作,使得...
项目自动发布脚本项目 宗旨: 通过简单的命令能自动发布应用程序到特定的服务器上。包括系统环境安装,更新版本库,编译,打包,分发,应用服务器的启停等。 目标: 1.命令简单 2.支持分布式发布 3.支持多样的应用...
在本例中,该脚本专门用于自动化完成小米社区的相关任务,这可能涉及日常互动、内容发布、数据收集、反馈回应等多种操作。小米社区作为一个用户交流的平台,拥有大量的用户生成内容,其中可能包括问题解答、产品反馈...
本文将介绍如何利用`cross-env`和`scp2`这两个插件来创建这样一个跨平台的Vue项目发布脚本。 首先,`cross-env`是一个用于处理跨平台环境变量的Node.js包。在开发过程中,我们经常需要根据不同的环境(如开发环境、...
4. **在持续集成中的作用**:SHELL脚本可以用来自动化部署过程,例如打包、发布、启动服务等。 **持续集成实践:** 1. **版本控制集成**:Jenkins与svn配合,实现代码提交后自动触发构建。 2. **构建自动化**:...
标题中的“shell写的编译发布脚本,重启服务器”指的是使用Shell脚本来自动化软件的编译、部署以及服务器的重启过程。在IT行业中,这样的脚本对于提高开发和运维效率至关重要。Shell脚本是Unix/Linux操作系统中的一种...
这个脚本可能包含对每个项目执行`git push`或者使用`git flow release finish`等命令来完成版本发布。 `install-all.bat`可能用于批量安装与Git相关的软件或插件。这可能涉及到运行`git bash`的安装程序,或者安装...
本文将深入探讨如何基于Groovy实现Java脚本的动态编译、部署和发布,并且介绍如何通过Groovy脚本直接调用Dubbo接口,从而提高开发效率和灵活性。 Groovy是一种基于Java平台的强大的动态编程语言,它具有简洁的语法...
基于SpringBoot的新闻管理发布系统源码+数据库脚本,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕设的学生...
本文所提及的“基于Python与Shell的SVN项目自动化发布与重启脚本设计源码”,正是这样一个提升项目管理效率的工具。该项目包含了总共38个文件,其中涉及的文件类型多样,既包括了常用的配置文件,也有压缩包文件,...
这个脚本是开发者工具箱中的一个重要组成部分,尤其对于那些频繁进行版本迭代和发布的项目。 在`Go-release.sh`脚本中,通常包含以下关键步骤: 1. **设置环境**:首先,脚本会检查必要的环境变量是否已设置,如`...
自动发布Java项目(Tomcat)Shell脚本
docker项目自动git拉取自动发布shell脚本
芋道sql ruoyi-vue-pro yudao项目商城模块相关SQL脚本,是指一套用于芋道sql ruoyi-vue-pro yudao项目中商城模块数据库操作的SQL语句集合。这些SQL脚本通常包含了创建数据库表、插入示例数据、以及执行数据库级别的...
本文将详细介绍如何在服务器上利用脚本打包并编译Java项目,涵盖了从版本控制到最终发布的全过程。 首先,我们需要理解整个流程涉及的关键工具和技术: 1. **版本控制**:在描述中提到了`svn`,这是一款广泛使用的...
《杭州朗慧witask<互动问答系统>项目数据库脚本详解》 在信息技术领域,数据库是存储和管理信息的核心工具,而脚本则是操作数据库的关键手段。本文将深入解析“杭州朗慧witask<互动问答系统>项目”的数据库脚本,...