接口自动化平台搭建(四),自动化项目Jenkins持续集成

时间:2022-10-26 09:35:09

一、Jenkins的优点

1、传统网站部署流程

  一般网站部署的流程 这边是完整流程而不是简化的流程 
需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 
,如果发现外网部署的代码有异常,需要及时回滚,一般是运维来做。

1、功能测试 2、上线的时间 3、 jenkins 4、运维 5、功能测试

2、Jenkins部署流程

  我们可以通过jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins非常易于安装和配置,简单易用。 
简单来说方便如下人员:

  1. 开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在SVN、GIT仓库即可。 war 源码多 自动把代码放到服务器上面
  2. 运维人员:减轻人工干预的错误率,ansible 一键完成了 同时解放运维人员繁杂的上传代码、手动备份、更新
  3. 测试人员:可以通过jenkins进行简单的代码及网站测试

3、持续集成的意义 增加工作效率

  1. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量
  2. 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能
  3. 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心

4、持续集成的组件

    1. 一个自动构建过程,包括自动编译、分发、部署和测试
    2. 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,例如SVN、GIT代码库
    3. 一个jenkins持续集成服务器就是一个配置简单和使用方便的持续集成服务器

二.部署项目

1.创建Jenkins项目

  登录Jenkins,点击新建项目  接口自动化平台搭建(四),自动化项目Jenkins持续集成

接口自动化平台搭建(四),自动化项目Jenkins持续集成

2.丢弃旧的构建 (保留7天,最大构建的最大数100)

接口自动化平台搭建(四),自动化项目Jenkins持续集成

3.码云获取HTTP地址  http://172.16.1.161/auto_test/byxf_qa.git

接口自动化平台搭建(四),自动化项目Jenkins持续集成

4.Jenkins中配置码云中的地址,并添加登录名密码

接口自动化平台搭建(四),自动化项目Jenkins持续集成

接口自动化平台搭建(四),自动化项目Jenkins持续集成

三.Jenkins脚本

1.登录部署项目服务器

接口自动化平台搭建(四),自动化项目Jenkins持续集成

2.执行脚本

接口自动化平台搭建(四),自动化项目Jenkins持续集成

3.脚本内容如下

pwd
cd /root/

mv -f /root/api_auto/static /root/static (移动static下面的所有内容,主要为了保存上传服务器的文件,图片,excel等 )
rm -rf api_auto/* (删除api_auto文件夹下所有内容)
a=`netstat -apn|grep 9000`  (执行shell命令并获取结果)
echo $a
if [ -n "$a" ]; then  (判断如果有返回值)
echo "端口不为空 匹配端口杀掉进程"
port=`netstat -apn|grep 9000|awk '{ print $7 }'|awk -F/ '{ print $1 }' `  (获取匹配到端口的进程id)
echo $port
kill -9 $port  (杀掉进程)

fi
pwd
echo "api_auto目录已被清空"

4.将代码拉倒项目目标服务器上

接口自动化平台搭建(四),自动化项目Jenkins持续集成

5.继续登录139服务器,启动服务即可

当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。

  • &  
    当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh & 
    适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
  • 1

这样,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。

PS:当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。(ps -ef | grep 进程号 或者 kill -9 进程号)

  • nohup 
    使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:
  • 1

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

  • 1

使用了nohup之后,很多人就这样不管了,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。

  • ctrl + z 
    可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

  • Ctrl+c 
    终止前台命令。

  • jobs 
    查看当前有多少在后台运行的命令。 
    jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

  • 2>&1解析
  • 1
    1. command>out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
    2. 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
    3. 试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

接口自动化平台搭建(四),自动化项目Jenkins持续集成

echo "在139服务了"
cd /root/api_auto/
rm -rf /root/api_auto/static  (删除从git上拉下来的static文件夹)
cp -rf /root/static /root/api_auto/static (复制原来的static文件夹)
rm -rf /root/static (再把原来的删除掉)
pwd
mkdir log (创建日志文件夹)
chmod u+x *.sh
echo "完成"

参考博客地址:https://blog.csdn.net/a877415861/article/details/74544086

接口自动化平台搭建(四),自动化项目Jenkins持续集成的更多相关文章

  1. 自动化项目Jenkins持续集成

    一.Jenkins的优点 1.传统网站部署流程   一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 ,如果 ...

  2. pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告

    pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富. allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例 ...

  3. iOS &Android 项目 Jenkins持续集成

    背景:由于之前的jenkins机器软件环境较老(mac系统 和 Xcode版本等太低).设备性能也是比较差,编译相关脚本也不大适合目前业务,所以,跟infra部门重新申请了一台固定ip .高配的mac ...

  4. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  5. Linux-GitLab+Jenkins持续集成+自动化部署

    GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...

  6. CentOS 7 Gitlab+Jenkins持续集成+自动化部署

    基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...

  7. 自动化打包 Jenkins 持续集成 Git Gradle MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. 手把手教你利用Jenkins持续集成iOS项目

    前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...

  9. Jenkins持续集成学习-搭建jenkins问题汇总

    目录 Jenkins持续集成学习5-搭建jenkins问题汇总 目录 前言 问题列表 nuget还原包问题 编译问题 SVN更新问题 参考文档 Jenkins持续集成学习5-搭建jenkins问题汇总 ...

随机推荐

  1. Java 字符的验证

    package net.hlj.common.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @ ...

  2. cocos2d-x jsb 防止触摸事件传递

    在游戏中要实现消息弹窗,让用户点击确认,其他区域产生遮罩,阻挡下层的事件被点击到,这是个很常用的功能,在cocos2d-x中,可以通过为layer添加事件代理来实现: pDirector->ge ...

  3. in an effort to

    What does "in an effort" to mean? I personally consider in an effort to a stock phrase1. T ...

  4. MyBatis学习笔记&lpar;2&rpar;——缓存

    一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session flush或 close之后,该Session 中的所有Cache将被清空 二级缓存 ...

  5. JPEG图像密写研究(一) JPEG图像文件结构

    [转载]转载自http://www.cnblogs.com/leaven/archive/2010/04/06/1705846.html JPEG压缩编码算法的主要计算步骤如下: (0) 8*8分块. ...

  6. 项目代码摘抄,dot的用法之1

    function searchTags() { var list = $('#tags-list-select option:selected').val(); console.log(list); ...

  7. Centos7配置TiDB集群

    一:各模块属性 模块名称 状态 建议实例数 功能 负载均衡组件 TiDB 无状态 2 接收SQL请求,处理SQL相关逻辑,并通过PB找到存储数据的TiKV地址 LVS.HAProxy.F5 PB 集群 ...

  8. 集合,ArrayList

    用集合代替数组: Console.Write("请输入人数:"); int renshu = int.Parse(Console.ReadLine()); ArrayList ch ...

  9. 使用 Node&period;js 搭建微服务网关

    目录 Node.js 是什么 安装 node.js Node.js 入门 Node.js 应用场景 npm 镜像 使用 Node.js 搭建微服务网关 什么是微服务架构 使用 Node.js 实现反向 ...

  10. 《Linux内核分析》第三周学习小结 构造一个简单的Linux系统OS

    郝智宇 无转载 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第三周 构造一个简单的Linux系统Me ...