Jenkins脚本实例

Jenkins脚本实例_第1张图片
Jenkins脚本实例_第2张图片
Jenkins脚本实例_第3张图片

执行Shell

#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe

#指定最后编译好的jar存放的位置 即是发布目录
project_path=/usr/local/app/ft-web/
#启动脚本存放路径
shell_path=/usr/local/app/
#Jenkins中编译好的jar位置  即是编译目录
jar_path=/var/lib/jenkins/workspace/ft-business/ft-web/target/
#Jenkins中编译好的jar名称 
jar_name=ft-web.jar
#备份文件名称
jar_name_bak=ft-web-bak.jar

#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(cat /usr/local/app/ft-web/process.pid)

pwd
cd  ${project_path}
#备份
mv  ${jar_name} ${jar_name_bak}
echo "备份完成"
pwd

#进入指定的编译好的jar的位置
cd  ${jar_path}
#将编译好的jar复制到最后指定的位置
cp  ${jar_path}/${jar_name}  ${project_path}
#进入最后指定存放jar的位置
cd  ${project_path}

if ${pid}; then  #判断进程号id是否存在
    echo "pid is null"
else
    echo "Kill the project process that may have been started before..."
    kill -9 ${pid}  #杀掉以前可能启动的项目进程
fi    #if结束标志

cd ${shell_path}

pwd

sh ft-web.sh

echo "success"

#将进程ID存入到process.pid文件中
echo $! > /usr/local/app/ft-web/process.pid

Post Steps:

#!/bin/bash
#-*- coding:utf-8 -*-

pname='\n项目名称:'${JOB_NAME}
vv='\n项目版本号:'${version}
handler_type='\n项目描述:财税通后端工商财务服务'

build_time="\n触发时间:$(date +%F/%T)"
build_u='\n触发人员:'$BUILD_USER_ID
Message='发布完成'${pname}${vv}${handler_type}$build_time${build_u}

curl 'https://oapi.dingtalk.com/robot/send?access_token=b0e239a25e238f65445440ff90cfa7634b5db25f3fce21de147fc3abdc9236ca' \
   -H 'Content-Type: application/json' \
   -d "
  {\"msgtype\": \"text\", 
    \"text\": {
        \"content\": \"$Message\"
     }
  }"

你可能感兴趣的:(DevOps,jenkins,linux,运维)