• 38、jenkins持续集成(一)


    一、敏捷开发中持续集成痛点

    • 开发经历
      在这里插入图片描述
    • 传统开发与敏捷开发分析如何可视化、可管理化的方式实现自动发布与部署

    在这里插入图片描述


    二、Jenkins简介

    • 什么是Jenkins
      • Jenkins是一个开源软件项目,起源于Hudson(Hudson是商用的),是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成
      • 可在Tomcat等流行的servlet容器中运行,也可独立运行
      • 提供友好操作界面的持续集成(CI)工具
      • 它用于实时测试和报告较大代码库中的孤立更改。 Jenkins软件使开发人员能够快速找到并解决代码库中的缺陷,并自动进行构建测试
    • 为什么要使用Jenkins
    使用Jenkins之前使用 Jenkins之后
    一旦所有开发人员都完成了分配的编码任务,他们通常会同时提交所有代码。后来测试并部署了Build,构建了代码提交,并且测试周期非常少,并且几天后就完成了一次构建一旦开发人员提交代码,便会构建并测试代码。 Jenkin将在一天中多次构建和测试代码,如果构建成功,则Jenkins将源代码部署到测试服务器中并通知部署团队;如果构建失败,则Jenkins将错误通知开发人员团队
    由于代码是一次构建的,因此一些开发人员需要等到其他开发人员完成编码才能检查其构建在任何开发人员提交之后,将立即构建代码
    隔离,检测和修复多个提交的错误并非易事由于代码是在单个开发人员的每次提交之后构建的,因此很容易检测出导致构建失败的代码
    代码构建和测试过程完全是手动的,因此有很多失败的机会自动化的构建和测试过程可节省时间并减少缺陷
    修复并测试所有错误后,将部署代码每次成功构建和测试后,都将部署代码
    开发周期慢开发周期很快。新功能更易于用户使用。增加利润
    • jenkins构建服务器流程
      在这里插入图片描述

    三、jenkins安装与插件管理


    四、通过free style构建项目

    1 - 新建任务

    • 新建任务
      在这里插入图片描述
      在这里插入图片描述

    2 - 拉取git代码配置

    • github中创建一个测试仓库

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    3 - 非常重要git安装与git账户邮箱

    在这里插入图片描述

    4 - 开始构建

    在这里插入图片描述
    在这里插入图片描述

    • 查看构建历史:控制台输出,这里有个很重要的信息
      • 也就是说我们之后构建的项目目录都会在/var/lib/jenkins/workspace
      • 同时我们cd到上面的目录,查看构建后从git拉取的内容

    在这里插入图片描述
    在这里插入图片描述

    5 - 配置构建shell执行

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5 - 构建服务器上传文件到运行服务器

    • 为SSH的远程服务器添加用户密码认证:系统管理 -> Manage Credentials -> 全局 -> 添加凭据
      在这里插入图片描述
      在这里插入图片描述

    • 系统管理-系统配置-下拉找到SSH server
      在这里插入图片描述

    • 点击高级-并勾选Use password authentication, or use a different key:输入密码,然后到最下面点击,我们可以看到提示是Success;然后保存
      在这里插入图片描述

    • 构建后操作 -> Send build artifacts over SSH:配置好后点击应用保存

      • Name:SSH Server的Name属性就是我们希望连接的服务器
      • Source files:这里输入的是你希望传到服务器的文件夹和文件;路径是相对jenkins的workspace的项目名称的;例如项目名称是Test_Project的go项目,编译打包后的路径为Test_Project文件夹下的target,则Source files填入target/*.go
      • Remove prefix:如果Source files为target/*.go,但是不想把target目录创建到服务器端,这个时候就可以在Remove prefix里填入target
      • Remote directory:这里指文件将被拷贝到服务器的路径;PS:被拷贝文件在服务器上的完整路径=登录服务器账号的默认路径(这个是上面配置的data路径)+Remote directory
      • Exec command:这里就是连接服务器之后需要执行的命令

    在这里插入图片描述

    • 如图目录下新建2个文件用于测试:分别是 test.go 和 readme.txt
      在这里插入图片描述
    • 开始构建,然后查看控制台输出日志

    在这里插入图片描述

    • 我们来远程服务器查看传输的结果
      在这里插入图片描述
    • 修改Source files的规则为全部文件,重新构建,并查看结果
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 我们在target中添加一个目录,并添加一个文件,再构建查看结果:可以发现goods目录并没有传输过来
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 修改Source files的规则为target/**,重新构建查看结果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    docker容器时间和宿主机时间不一致
    50.MongoDB快速入门实战
    2022-06-26 数据结构-数组、链表、栈、队列
    MongoDB常用的比较符号和一些功能符号
    SQL注入漏洞 | iwebsec
    java毕业设计软件S2SH学生会/社团活动管理系统[包运行成功]
    【开发篇】十八、SpringBoot整合ActiveMQ
    分页存储逻辑地址转物理地址
    关于HashCode的问题
    积雪草酸肌白蛋白纳米粒|野黄芩苷豆清白蛋白纳米粒|黄芩苷蓖麻蛋白纳米粒(齐岳)
  • 原文地址:https://blog.csdn.net/qq23001186/article/details/126371212