当前位置:网站首页>【shell】jenkins shell实现自动部署
【shell】jenkins shell实现自动部署
2022-06-29 13:49:00 【bulabula2022】
1.查看工程编译打包是否自动完成
#!/bin/bash
# 将本地命令行运行job
#curl -n -X POST http://XXX:8089/job/scev6/buildWithParameters --user xxxx:1234abcd --data cp_branch='stage-mom'
#获取jenkins 控制台日志
#curl -n -X POST http://XXX:8089/job/scev6/$job_number/consoleText --user xxxx:1234abcd
#使用列表for循环所要运行的job名,按照列表里先后顺序执行,不可更改
for variable in scev6 scev6-multilang
do
#获取下一次构建编号
job_number=`curl --silent http://XXX:8089/job/$variable/api/json --user xxx:1234abcd |jq --raw-output '.nextBuildNumber'`
#执行job,分支选择stage-mom,也即是10.79.69.21
curl -n -X POST http://XXX:8089/job/$variable/buildWithParameters --user XXX:1234abcd --data cp_branch='stage'
#查询job状态最多循环执行5次
for i in `seq 1 5`
do
#查询间隔时间60s,启动下一个job,最长间隔5分钟
sleep 60
#获取当前job运行结果
##job_result=$(curl --silent http://XXX:8089/job/$variable/lastBuild/api/json --user XXX:1234abcd |jq --raw-output '.result')
job_result=`curl --silent http://XXX:8089/job/$variable/$job_number/api/json --user XXX:1234abcd |jq --raw-output '.result'`
echo "=================第$i次检测当前job:${variable},job编号:$job_number,job运行状态: $job_result ====================================="
if [[ $job_result = "SUCCESS" ]];then
echo "=================job:$variable构建完成,运行下一个 ==================="
break
elif [[ $job_result = "FAILURE" ]] || [[ $job_result = "ABORTED" ]];then
echo "=================job:$variable构建失败,运行下一个 ==================="
break
else [[ $job_result = "null" ]]
echo "job_$variable构建中......"
fi
done
done
2.上传打包后的工程到腾讯云服务器
#!/bin/bash
vdate=`date +'%Y%m%d%H%M%S'`
tg="v${vdate}_${BUILD_NUMBER}"
port=22
[email protected]
#pwd="cobbler"
pwd=/home/devops/.ssh/id_rsa
cmd="sudo rsync -avP -e \"ssh -i /root/.ssh/id_rsa\" /mnt/scev6/war/ [email protected]:/mnt/scev6/war/ --include=/* --include=*.jar --include=*.war --exclude=*"
ssh -p $port -i $pwd $target "$cmd"
#ssh -p 22 -i /home/devops/.ssh/id_rsa [email protected]
echo '传输文件到腾讯云服务器(124.223.62.51)上完成......'3.启动服务
#!/bin/bash vdate=`date +'%Y%m%d%H%M%S'` tg="v${vdate}_${BUILD_NUMBER}" port=22 [email protected] #srcdir="/mnt/deployment/mom-server/src" pwd=xxx cmd="sudo bash /mnt/scev6/b.sh restart && sudo bash /mnt/scev6/a.sh restart" ssh -p $port $target "$cmd" #ssh -p 22 -i xxx [email protected] echo 'end'
边栏推荐
- Why does ETL often become ELT or even let?
- golang6 反射
- MySQL intercepts the string to remove duplication, and MySQL intercepts the string to remove reassembly
- Wechat applet: new and exclusive cloud development wechat group contacts
- 布隆过滤器Bloom Filter简介
- goby全端口扫描
- What is the reason why the gbase8s database encountered a 951 error?
- Interpretation of RESNET source code in mmdet +ghost module
- redis 分片集群搭建与使用教程
- 微信小程序:全新独家云开发微群人脉
猜你喜欢

TikTok全球短视频霸主地位或被YouTube反超

中康控股开启招股:拟募资净额3.95亿港元,预计7月12日上市

嵌入式开发:硬件在环测试

硬件开发笔记(八): 硬件开发基本流程,制作一个USB转RS232的模块(七):创建基础DIP元器件(晶振)封装并关联原理图元器件

疯狂的数字藏品,下一个造富神话?

goby如何导出扫描结果

Teach you how to install the latest version of mysql8.0 database on windows, nanny level teaching

By proxy, by buyout, the wild era of domestic end-to-end travel is waiting for the next "eternal robbery"

纳人才,谋发展 | 人大金仓喜获“最佳雇主校招案例奖”

Summary of binary tree exercises
随机推荐
中康控股开启招股:拟募资净额3.95亿港元,预计7月12日上市
go-zero微服务实战系列(七、请求量这么高该如何优化)
TikTok全球短视频霸主地位或被YouTube反超
【黑马早报】中公教育市值蒸发逾2000亿;新东方直播粉丝破2000万;HM关闭中国首店;万科郁亮称房地产已触底;微信上线“大爆炸”功能...
投资人跌下神坛:半年0出手,转行送外卖
HTAP X 云原生: TiDB 加速释放数据价值,实现数据敏捷
超 Nice 的表格响应式布局小技巧
Equivalence class partition method for test case design method
[high concurrency] 28000 words' summary of callable and future interview knowledge points. After reading it, I went directly to ByteDance. Forgive me for being a little drifting (Part 1)
Summary of binary tree exercises
MySQL数据库:分区Partition
留给比亚迪的时间还有三年
一位博士在华为的22年
一次mysql的.ibd文件过大处理过程记录
Redis的五种数据结构的底层实现原理
Intuition and Implementation: batch normalization
吐血整理:一份不可多得的架构师图谱!
现场快递柜状态采集与控制系统
每周 Postgres 世界动态 2022w25
单项数据流之子组件修改父组件的值