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 <


 配置的自定义参数: