Jenkins 自动化打包发布

java 虚拟机部署方式

参数:

 shell执行部分

#!/bin/bash

source /etc/profile

echo '当前环境为:'$project_env
echo $server_dir
echo '可回退的版本有如下:'
ls -lt /data/builddir/${project_env}/${server_name} |awk '{print $9}'|head -n 11


if [[ ${type} = "deploy" ]]; then

   echo "此次操作为发布,发布构建ID为:"$BUILD_NUMBER
   mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
   cd $WORKSPACE/${server_dir}
   $build_bash >/tmp/$server_name.txt
   cat /tmp/$server_name.txt |grep 'BUILD SUCCESS'
   if [[ $? == 0 ]];then
       echo '构建成功'
       find $WORKSPACE/${server_dir}/ -name "${server_name}*.jar" |xargs -i cp {} /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
       rm -f /tmp/$server_name.txt
   else
       echo '构建失败'
       cat /tmp/$server_name.txt
       rm -f /tmp/$server_name.txt
       exit 1
   fi  
elif [[ ${type} = "rollback" ]]; then
	if  [ ! -n "${rollback_version}" ] ;then
    	echo "请填写回退版本号"
    	exit 1
	else
    	echo "您要回退的版本号为:"$rollback_version
	fi
	echo "程序回退,无需打包"
elif [[ ${type} = "restart" ]]; then
    echo '重启服务,无需打包'
fi

 ssh-server部分

#!/bin/bash

if [[ ${type} = "rollback" ]]; then
     version=${rollback_version}
else
     version=${BUILD_NUMBER}
fi

echo ${version}
sh -x /opt/dubbo_deploy.sh ${type} ${project_env} $version ${server_name}

node 服务虚拟机部署

参数:

 shell执行代码

#!/bin/bash


echo '环境为:'$project_env

source /etc/profile

echo $WORKSPACE
cd $WORKSPACE
mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}

##安装依赖
/usr/bin/npm i --unsafe-perm

##编译
/usr/bin/npm run build

##拷贝至dev环境nginx服务器
cd $WORKSPACE
zip -r --symlinks /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip .

ssh-server执行代码

#!/bin/bash
source /etc/profile

base_dir=/opt/node
project_dir=$base_dir/$server_name

rm -rf $project_dir
mkdir -p $project_dir

cd $project_dir
if [[ ${type} = "deploy" ]]; then
    wget deploy.com/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip
elif [[ ${type} = "rollback" ]]; then
  #若为回退,从上一次构建成功的ID中获取压缩包
    wget deploy.com/${project_env}/${server_name}/${rollback_version}/${server_name}.zip
fi

unzip ${server_name}.zip
cd $project_dir
npm run build && npm start &

PHP-service 服务虚拟机部署

参数:

 shell执行代码

#!/bin/bash


echo '环境为:'$project_env

if [[ ${type} = "deploy" ]]; then

   echo "此次操作为发布,发布构建ID为:"$BUILD_NUMBER
   mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
   cd $WORKSPACE 
   zip -r /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip .
elif [[ ${type} = "rollback" ]]; then
	if  [ ! -n "${rollback_version}" ] ;then
    	echo "请填写回退版本号"
    	exit 1
	else
    	echo "您要回退的版本号为:"$rollback_version
	fi
	echo "程序回退,无需打包"
fi

ssh-server执行代码

#!/bin/bash
source /etc/profile

base_dir=/opt/php
project_dir=$base_dir/$server_name

rm -rf $project_dir
mkdir -p $project_dir

cd $project_dir
if [[ ${type} = "deploy" ]]; then
    wget 10.161.31.185:80/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip
elif [[ ${type} = "rollback" ]]; then
  #若为回退,从上一次构建成功的ID中获取压缩包
    wget 10.161.31.185:80/${project_env}/${server_name}/${rollback_version}/${server_name}.zip
fi

unzip ${server_name}.zip

if [[ ${JOB_NAME} =~ "service" ]]; then
    ##如果是php-service,需要重新restart一下
    php $project_dir/start.php restart -d
else
    echo "php-api无需restart"
fi

rm -rf ${server_name}.zip

PHP-api 服务虚拟机部署

参数:

 shell执行代码

#!/bin/bash


echo '环境为:'$project_env

if [[ ${type} = "deploy" ]]; then

   echo "此次操作为发布,发布构建ID为:"$BUILD_NUMBER
   mkdir -p /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}
   cd $WORKSPACE 
   zip -r /data/builddir/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip .
elif [[ ${type} = "rollback" ]]; then
	if  [ ! -n "${rollback_version}" ] ;then
    	echo "请填写回退版本号"
    	exit 1
	else
    	echo "您要回退的版本号为:"$rollback_version
	fi
	echo "程序回退,无需打包"
fi

ssh-server执行代码

#!/bin/bash

base_dir=/opt/php
project_dir=$base_dir/$server_name

rm -rf $project_dir
mkdir -p $project_dir

cd $project_dir
if [[ ${type} = "deploy" ]]; then
    wget deploy.com/${project_env}/${server_name}/${BUILD_NUMBER}/${server_name}.zip
elif [[ ${type} = "rollback" ]]; then
  #若为回退,从上一次构建成功的ID中获取压缩包
    wget deploy.com/${project_env}/${server_name}/${rollback_version}/${server_name}.zip
fi

unzip ${server_name}.zip

if [[ ${JOB_NAME} =~ "service" ]]; then
    ##如果是php-service,需要重新restart一下
    php $project_dir/start.php restart -d
else
    echo "php-api无需restart"
fi


rm -rf ${server_name}.zip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值