zoukankan      html  css  js  c++  java
  • 【大话QT之十七】Jenkins介绍及安装使用文档(与Git集成)

    文章文件夹结构例如以下:

    1> Jenkins与Git相关介绍

    2> Jenkins部署安装

    3> Gitblit部署安装

    4> Jenkins与Git集成使用

    5> 项目集成开发实例

    6> 总结

    一、Jenkins与Git相关介绍

    Jenkins是如今很流行的持续集成(Continuous Integration)CIserver,它的前身是Hudson。Jenkins易于安装,不须要数据库的支持,直接通过Web界面进行配置,并且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,这些都是Jenkins相比其他持续集成server的优势所在。

    Git在Wikipedia上的定义是,它是一个免费的、分布式的版本号控制工具,或者是一个强调了速度快的源码管理工具。Git最初被Linux Torvalds开发出来用于管理Linux内核的开发。每个Git的工作文件夹都是一个全然独立的代码库,并拥有完整的历史记录和版本号追踪能力,不依赖于网络和中心server。Git的出现减轻了很多开发人员和开源项目对于管理分支代码的压力,因为对分支的良好控制,更鼓舞开发人员对自己感兴趣的项目作出贡献。事实上很多开源项目包含:Linux kernel,Samba,X.org Server, Ruby on Rails,都已经过渡到使用Git作为自己的版本号控制工具。

    Jenkins持续集成的主要流程就是Jenkins会在后台进行,轮询版本号控制的存储库,当发现版本号库出现变更,就会通过提前定义的构建脚本进行项目的构建,Jenkins会依据项目需求将构建的任务分配到Slave端。一般的项目构建过程主要分为自己主动化编译和自己主动化測试两个阶段,这相同是你脚本发挥作用的阶段。

    二、Jenkins部署安装

    本文档Jenkins安装配置环境:Centos 6.3。Jenkins是一款基于Java开发的开源的、当前最广泛流行的持续集成工具。丰富的插件能够让它的使用更加简单,它差点儿支持全部的版本号控制系统。你能够通过各种方式来配置构建过程,比如:在版本号控制系统中出发一次提交,通过一个定时的脚本来调度,一个指定的编译过程完毕之后开发构建等等。

    1> 安装Java:yum install java-1.6.0-openjdk;安装完毕后通过java -version来检查是否成功安装。

    2> 将Jenkins的repo资源库增加本机。

        

    3> 安装Jenkins

          rm -rf jenkins.repo

          mv jenkins.repo.1 jenkins.repo

          yum intall jenkins

    4> 设置Jenkins开机自启动

          chkconfig jenkins on

    5> 启动Jenkins

          service jenkins start

    6> 通过web訪问Jenkins

         默认情况下,Jenkins会在8080port启动,能够通过:netstat -anop | grep 8080 来查看,訪问:http://192.168.85.128:8080/訪问, 注意此时要关闭防火墙。

       

    7> 配置用户安全訪问

          如今,我们来配置Jenkins的安全认证。默认情况下Jenkins“同意不论什么人做不论什么事情”,这里我们将採用基于矩阵的安全认证,事实上就是权限列表。

         

           

          点击“Configure Global Security”-> “Jenkins专实用户数据库”-> “同意用户注冊”,点击保存。保存后,在右上角就出现了注冊的button。

         

         点击注冊,填写对应的信息后,点击保存。

         如今,我们将限制用户注冊,採用“基于安全矩阵的授权策略”。

         将Jenkins专实用户数据库下的“同意用户注冊”勾掉,在授权策略中选择“安全矩阵”,在加入用户/组中,填写刚才注冊的账号,并为他选择全部的权限列表。

        

        如今,刚刚加入的houqd2012用户在登陆后就能够管理Jenkins了。其他,注冊的用户,能够利用houqd2012在账号管理中分配不同的权限。

        加入用户:“系统管理”-> “管理用户”-> “新建用户”

        赋予权限:houqd2012管理员账号登陆,在“Configure Global Security”中分配权限:为user01分配非常小的权限,这样就能够对账号,以及各自拥有的权限进行统一的配置了。

         

    三、Gitblit安装部署

            Git是如今非常流行的分布式版本号控制工具,github更是人尽皆知。可是,github要求更够訪问互联网,我们能够在Github上申请一个免费的账号,然后将代码上传到这上面。可是,这是公共的平台,其他全部人均能够自由下载代码,这对于公司内部使用来说,不太安全。还好开源软件给我们提供了非常多选择,比方:Gitblit、GitStack、Gitolite等。Gitblit是一个纯java库,用来管理、查看和处理Git资料库,相当于Git的java管理工具。这里我採用的是Gitblit GO版本号,下载地址:http://www.gitblit.com/

    1> 安装java

          yum install java-1.6.0-openjdk

    2> 安装gitblit

          gitblit默认安装文件夹为/opt/giblit,先创建/opt/giblit文件夹

          tar -zxvf gitblit-1.6.0.tar.gz -C /opt/giblit

          gitblit在centos下安装的实际运行文件为:service-centos.sh

          安装脚本install-service-centos.sh的内容为:

         

          事实上,它就是将service-centos.sh复制到启动文件夹下,并设为开机自启动。

          改动httpport:

         

          运行安装  ./install-service-centos.sh

    3> 启动gitblit服务

          service gitblit start

         

          从以上错误中,应该能够看出是java的版本号太低。又一次安装较高版本号的java:jdk-7u55-linux-x64.rpm。

          訪问:http://192.168.85.169:8443/

         

          默认账号和password为:admin/admin

          admin登陆后改动password。

          创建用户,并创建第一个版本号库:

         

         本地创建HelloWorld项目,并将代码提交到版本号库。

        

        新建一个helloworld.c文件,仅输出一句HelloWorld,并提交版本号库。

       

        如今在Gitblit的web端即能够看到版本号库的提交记录。

       

        这里显示的时间是8小时前,是由于我本机的时间与安装gitblit的server的时间不一致。

    四、Jenkins与Git集成使用

    Jenkins能够基本上能够与不论什么的版本号控制系统继承,这主要依赖于它丰富多样的插件,这里我们利用它与Git版本号控制系统集成。

    “系统管理”-> “管理插件”-> 在可选插件中选择一下这三个插件,然后点击安装,它同一时候会将依赖的其他插件包都下载下来,这样的方式通常非常慢,还能够我们自己将插件包下载下来,放在Jenkins安装文件夹下的plugins文件夹下,插件就能够直接安装了,下载地址 : https://updates.jenkins-ci.org/download/plugins/

    须要下载的包有:

    上传到/var/lib/jenkins/plugins文件夹,重新启动jenkins: service jenkins restart,再次查看已安装插件中,已经存在上面的那三个插件。

    五、项目集成开发实例

    最后,我们利用Jenkins来自己主动构建HelloWorld的项目,主要完毕,编译、打包的过程。

    1> 创建构建任务

        

    2> 配置项目

         在源代码管理中选择Git,然后填写相关信息:

        

        

         这里在填写Repository URL的时候,有可能会出现下面的错误:

        

         这是由于Git的版本号太低了,默认的Centos6安装的Git版本号是1.7.1,问题解决链接:

         http://serverfault.com/questions/589386/unknown-option-git-config-local-reported-by-jenkins

         解决的方法:升级Git版本号,解决链接:http://itekblog.com/update-git-centos/

        1) 下载rpm包

             wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.e16.rf.x86_64.rpm

        2) 安装rpm包

            rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

            rpm -i rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

        3) 改动repo文件

            yum clean all

            vim /etc/yum.repos.d/rpmforge.repo

            将[rpmforge-extras]中的 enabled = 0 改动为 enabled = 1

       4) 更新Git

            yum update git

           git --version ===> 当前git版本号更新为:1.7.12.4

    3> 保存更改,測试构建

         点击马上构建:

        

        能够查看构建过程:

       

       在jenkins安装文件夹下的jobs文件夹下存在我们的构建项目HelloWorldBuild,在它下的workspace下即为版本号库中的代码:

      

    4> 加入脚本,进行自己主动编译

        

        再次运行构建,查看控制台输出,能够看到我们的脚本在最后被运行:

       

    六、总结

           以上介绍了Jenkins的安装配置,以及它与Git配合应该怎样使用,这里还有非常多的一些特定没有介绍,包含:email提醒功能、多项目构建等。其最大的魅力在于脚本的编写,依据不同的脚本,能够运行的任务要多的多。比如:制作安装包,终于直接打包成终于的安装包等,就全然通过脚本来完毕。

           周末一下午的工作,加油!!

  • 相关阅读:
    【阿里前端面试点】目标,想成为一名好的前端工程师
    JavaScript实现数据双向绑定的三种方式
    a标签的下载链接,如果是图片,点击链接是下载一个图片而不是直接打开,应该怎么办?(添加download属性)
    AngularJs scope详解
    setTimeout可以传第三个甚至更多个参数
    (转) css3中的border-radius详解
    (转) JS原生对象、内置对象、宿主对象的区别
    纯css写的步骤条
    css如何实现滚动条隐藏但鼠标仍然可以滚动
    Js 与浮点数
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4330994.html
Copyright © 2011-2022 走看看