Jenkins持续集成

时间 主题
8.13(周二)14:00 WebDriver鼠标键盘操作
8.14(周三)20:00 Jenkins持续集成

在传统的瀑布开发模型中,是所有人写好代码之后提交版本管理工具,然后统一进行合并,然接着进行测试,确保准发布的版本无误后再进行版本的正式发布。在这种流程下,往常会把风险堆到软件发布前的最后阶段,在整体测试的环节下出现许多不可预知的问题。

在敏捷开发、DevOps的开发模型中,会选择持续的方式进行集成、测试、部署、交付,做一部分就马上递交给下一个流程,使用这样一个持续化的过程能够尽早地发现并解决问题,避免把问题都暴露在一个环节上。

在这里就必须提到持续集成、持续测试、持续部署、持续交付这几个概念。

几个概念

持续:随时可以执行,可重复,快速,频繁发布。

持续集成:开发人员完成代码编写之后,持续的提交、构建,经过自动化测试通过之后,再与原有代码进行合并。

持续测试:在整个软件生命周期对整个软件过程持续的进行测试(自动化+手工探索性测试等)的过程。

持续部署:在持续集成的基础上,持续的将通过测试的软件部署到测试环境、预生产环境、生产环境等。

持续交付:持续的将软件的新版本交付给用户进行评审,并获取反馈。

持续集成介绍

持续集成能够快速且频繁地(一天多次)将代码集成到主干。

它的好处主要有两个:

快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

持续集成并不能消除 Bug,而是让它们非常容易发现和改正。

Jenkins环境搭建

Jenkins的环境搭建比较简单,无论是Windows还是Linux都可以使用.war包的方式搭建。

.war需要使用java来打开,所以第一步应该是安装Java:

#官网下载jdk1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
#解压文件
tar –zxvf jdk-8u221-linux-x64.tar.gz
#拷贝文件夹到/usr/local/java:
cp jdk-8u221 /usr/local/java
#配置jdk环境
vi /etc/profile
#添加如下配置
JAVA_HOME=/usr/local/java/jdk1.8
CLASSPATH=:$JAVA_HOME/lib/:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin
#启用新的配置
source /etc/profile
#看版本
java -version 

第二步安装版本管理工具Git/SVN

(此处详细步骤略)

第三步安装Jenkins

#下载文件:
https://jenkins.io/download/
#启动Jenkins
java -jar jenkins.war --httpPort=8080
访问:
http://10.0.0.16::8080

安装配置相关插件

一个war包启动起来的,想配置东西怎么办,或者说,配置文件怎么办。

如果root账户,启动后,jenkins的配置文件就在/root/.Jenkins

其中,admin初始化密码文件就在secrets这个文件下面的这个文件里initialAdminPassword。其他的配置,大家根据需要去配置。

Jenkins使用

Jenkins的使用并不复杂,只要配置好相关工具以及插件后即可简单使用。

1、新建账户:

首先用admin账户登录进去,在系统管理-->管理用户-->新建用户里面新建账户。

2、配置安全策略

由于Jenkins默认是任何人可以访问该系统,相当于裸奔,所以需要配置安全策略系统管理-->全局安全配置-->授权策略将它改为安全矩阵,添加需要的账户,给特定的人勾选上所需的策略,这样就安全了。

3、添加节点(添加机器)

Jenkins的机器和测试环境的机器一般不会在同一台机器,多个测试环境,也有可能在多个机器上面。

先增加一个机器作为官网的测试环境。系统管理-->管理节点-->新建节点节点名称。

4、部署应用

通过系统管理里面的各项设置可以设置好全局的工具,如JDK、Maven、Git等,也可以安装各种插件,如Python、ansible等。

在这项设置完成之后,可以新建一个构建任务,使用ansible或者普通的shell或者bat脚本部署应用。

周六Vip课程预告

本周六芒果将带大家继续TestOps测试运维Python专项课程,在对Docker和Jenkins有个认识之后,我们将学习Django项目的持续集成。

每周六全天Vip课程,每周三晚免费课程总结及回顾答疑

TestOps|测试运维

精益技术 赋能过程

(0)

相关推荐

  • 持续集成之 Jenkins 的安装与配置(一)

    一.持续集成的概念 Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,功能包 ...

  • Docker版Jenkins持续集成

    随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的 ...

  • Jenkins持续集成的13种替代方案

    在<Jenkins越来越老了-现在该继续前进>,我们讨论了Jenkins最常见的问题,这些问题促使我们寻找替代方法.这就是为什么在本文中,我们提供了用于持续集成的最常见的Jenkins替代 ...

  • 持续集成之 Jenkins 配置基于角色的项目权限管理(五)

    一.前言 Jenkins是个好东西,开发运维测试的老江湖应该都听过,在此我就不再多做介绍jenkins是个什么东西了. jenkins自身的权限管理,无法实现用户指定显示视图或者视图中指定的jobs, ...

  • 持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

    一.背景 之前的项目是 public 的,如果我们在 gitlab上面把它修改成 private,然后再次打开配置,就可能会出现下面的错误,两种协议都会进行报错. 名称 IP 备注 Jenkins 1 ...

  • 持续集成 Jenkins +Gitlab + SSH 自动发布 HTML 代码

    一.整体流程 二.Jenkins 配置 2.1.首先安装插件 Gitlab Hook Plugin GitLab Plugin Publish Over SSH 2.2.配置目标服务器 系统管理 -- ...

  • 使用Jenkins实现项目持续集成部署

    十多年前,敏捷开发人员开始拥抱并促进测试驱动的开发和持续集成(CI).利用这些技术,只要开发人员将源代码检查到源存储库中,我们就可以自动构建源代码,执行详尽的单元测试套件以确保应用程序正常运行.许多测 ...

  • 持续集成、持续交付和持续部署有什么区别?0基础学linux

    持续集成.持续交付和持续部署有什么区别?很多人在学习Linux运维技能时总是分不清楚这三个知识点.那么我们一起来看下吧. 1持续集成 持续集成,一种软件工程流程,将所有工程师对于软件的工作复本,每天集 ...

  • Selenium2+python自动化62-jenkins持续集成环境搭建

    一.环境准备 小编环境: 1.win10 64位 2.JDK 1.8.0_66 3.tomcat 9.0.0.M4 4.jenkins 2.0 二.安装JDK 1.安装JDK教程很多,这里就不讲了,可 ...