目录

  • 一、敏捷开发中持续集成痛点
  • 二、Jenkins简介
  • 三、jenkins安装与插件管理
  • 四、通过free style构建项目
  • 1 - 新建任务
  • 2 - 拉取git代码配置
  • 3 - 非常重要git安装与git账户邮箱
  • 4 - 开始构建
  • 5 - 配置构建shell执行
  • 5 - 构建服务器上传文件到运行服务器

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

  • 开发经历
  • 传统开发与敏捷开发分析:如何可视化、可管理化的方式实现自动发布与部署

jenkins练习平台 jenkins_运维


二、Jenkins简介

  • 什么是Jenkins
  • Jenkins是一个开源软件项目,起源于Hudson(Hudson是商用的),是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成
  • 可在Tomcat等流行的servlet容器中运行,也可独立运行
  • 提供友好操作界面的持续集成(CI)工具
  • 它用于实时测试和报告较大代码库中的孤立更改。 Jenkins软件使开发人员能够快速找到并解决代码库中的缺陷,并自动进行构建测试
  • 为什么要使用Jenkins

使用Jenkins之前

使用 Jenkins之后

一旦所有开发人员都完成了分配的编码任务,他们通常会同时提交所有代码。后来测试并部署了Build,构建了代码提交,并且测试周期非常少,并且几天后就完成了一次构建

一旦开发人员提交代码,便会构建并测试代码。 Jenkin将在一天中多次构建和测试代码,如果构建成功,则Jenkins将源代码部署到测试服务器中并通知部署团队;如果构建失败,则Jenkins将错误通知开发人员团队

由于代码是一次构建的,因此一些开发人员需要等到其他开发人员完成编码才能检查其构建

在任何开发人员提交之后,将立即构建代码

隔离,检测和修复多个提交的错误并非易事

由于代码是在单个开发人员的每次提交之后构建的,因此很容易检测出导致构建失败的代码

代码构建和测试过程完全是手动的,因此有很多失败的机会

自动化的构建和测试过程可节省时间并减少缺陷

修复并测试所有错误后,将部署代码

每次成功构建和测试后,都将部署代码

开发周期慢

开发周期很快。新功能更易于用户使用。增加利润

  • jenkins构建服务器流程

三、jenkins安装与插件管理

  • jenkins安装参考

四、通过free style构建项目

1 - 新建任务

  • 新建任务

2 - 拉取git代码配置

  • github中创建一个测试仓库

jenkins练习平台 jenkins_服务器_02


jenkins练习平台 jenkins_运维_03


jenkins练习平台 jenkins_jenkins_04


jenkins练习平台 jenkins_ci_05


jenkins练习平台 jenkins_服务器_06


jenkins练习平台 jenkins_jenkins_07

jenkins练习平台 jenkins_jenkins练习平台_08


jenkins练习平台 jenkins_服务器_09

jenkins练习平台 jenkins_jenkins_10

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

  • 在前面的git安装中,我们已经说明了需要在jenkins的服务器上安装git,以及设置git的用户和邮箱:否则是无法完成构建的;

jenkins练习平台 jenkins_ci_11

4 - 开始构建

jenkins练习平台 jenkins_运维_12


jenkins练习平台 jenkins_运维_13

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

jenkins练习平台 jenkins_jenkins练习平台_14


jenkins练习平台 jenkins_ci_15

5 - 配置构建shell执行

jenkins练习平台 jenkins_jenkins_16


jenkins练习平台 jenkins_jenkins_17


jenkins练习平台 jenkins_服务器_18

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


  • 为SSH的远程服务器添加用户密码认证:系统管理 -> Manage Credentials -> 全局 -> 添加凭据
  • jenkins练习平台 jenkins_运维_19


  • jenkins练习平台 jenkins_运维_20


  • 系统管理-系统配置-下拉找到SSH server
  • jenkins练习平台 jenkins_运维_21


  • 点击高级-并勾选Use password authentication, or use a different key:输入密码,然后到最下面点击,我们可以看到提示是Success;然后保存
  • jenkins练习平台 jenkins_jenkins练习平台_22

  • 构建后操作 -> 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:这里就是连接服务器之后需要执行的命令

jenkins练习平台 jenkins_jenkins练习平台_23

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

jenkins练习平台 jenkins_服务器_24

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

jenkins练习平台 jenkins_运维_25


jenkins练习平台 jenkins_服务器_26


jenkins练习平台 jenkins_ci_27