jekins vue 发布脚本 shell
#!/bin/bash
# Description:对应jenkins上的shell脚本
# Author:yangdejian
# CompeleteTime:2021-03-10
start_time=$(date "+%Y-%m-%d %H:%M:%S")
script_root="/root/consignmentweb"
serv_path="/home/jsxt-admin-test"
project_name="xxx系统(vue)"
subscriber="oth4257RpdizMwyWEPpImC1nB8EA" # 暂时只通知给我
# 处理jenkins配置的输入参数
# 处理测试环境
env="test"
if [[ "${in_env}" = "生产环境" ]]; then
env="prod"
fi
# >>>>>>>>>>>>>>>>>>>>>>>> 函数块 start >>>>>>>>>>>>>>>>>>>>>>>>>
exit_with_error(){
echo "报警给订阅者"
first=${project_name}"发布异常"
keyword1="开始于["${start_time}"]的Jenkins自动构建任务中断,详情参见jenkin构建日志"
keyword2="中断原因:"$1
remark="具体异常原因需要查看构建日志"
# send_msg "$first" "$keyword1" "$keyword2" "$remark" "#8B008B"(不想接收发布结果了)
exit 1
}
exit_succ(){
echo "构建成功,通知订阅者"
local end_time=$(date "+%Y-%m-%d %H:%M:%S")
local start_seconds=$(date --date="$start_time" +%s)
local end_seconds=$(date --date="$end_time" +%s)
local consume=$((end_seconds-start_seconds))
local first=${project_name}"自动发布"
local keyword1="Jenkins自动发布参数如下\ngit分支:"${in_branch}"\n环境:"${in_env}"\n开始于:"${start_time}"\n总耗时:"${consume}"秒"
local keyword2="发布成功"
local remark="访问地址:http://jsxtest.100bm.cn/login"
# send_msg "$first" "$keyword1" "$keyword2" "$remark" "#3AB54A"(不想接收发布结果了)
exit 0
}
send_msg(){
local first=$1
local keyword1=$2
local keyword2=$3
local keyword3=$(date "+%Y-%m-%d %H:%M:%S")
local remark=$4
local color=$5
curl -X "POST" "http://xxx/wechat/v1/common/direct/template/msg" \
-H "Content-Type: application/json" \
-d@- \
<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# >>>>>>>>>>>>>>>>>>>>>>>> 主流程 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo "--------------------- 开始[${project_name}]的远程构建 ---------------------"
# jenkins编译项目前,启动环境变量(~/.bash_profile ~/.bashrc /etc/profile)
# 不继承linux环境变量,会导致在执行shell脚本,提示命令找不到
source /etc/profile
echo "1. 拉取最新的指定分支的代码..."
cd ${script_root} && git pull && git checkout ${in_branch} && git pull
if [[ "$?" != "0" ]]; then
exit_with_error "git拉取代码异常!"
fi
echo "2. 更新依赖库..."
yarn install
if [[ "$?" != "0" ]]; then
exit_with_error "依赖库更新异常!"
fi
echo "3. 开始构建..."
yarn build:"${env}"
if [[ "$?" != "0" ]]; then
exit_with_error "构建异常!"
fi
echo "4. 远程备份原文件..."
ssh root@192.168.x.x <
配置的自定义参数: