1 持续集成 概述及运行流程
   1.1 持续集成概述
       持续集成概述:持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并迚程自劢化测试。
       持续交付:指的是在集成环境 基础之上,将代码部署到预生产
       持续部署:在交付的基础上,把到生产环境过程自动化 
    1.2 jenkins和Gitlab概述
         Jenkins概述:是一个开源软件项目,是基亍Java开发的一种持续集成工具,用亍监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
         网方网站:https://jenkins.io/
    1.3  GitLab概述:
          是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。 
          GitLab 拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。 
          GitLab 中文网:https://www.gitlab.cc/installation/#centos-7 
    1.4  GitHub 和 GitLab 的区别:
           相同点: 二者都是基于 web 的 Git 仓库,在很大程度上 GitLab 是仿照 GitHub 来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。 
           不同点: 
             1、GitHub 如果要使用私有仓库,是需要付费的。GitLab 可以在上面创建私人的免费仓库。 
             2、GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比于 GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个 project 的部分代码;允许用户设置 project 的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;
               通过 innersourcing 让不在权限范围内的人访问不到该资源。 
           总结:从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候 GitLab 无疑是更好的选择。但对于开源项目而言,GitHub 依然是代码托管的首选。
     1.5 git相关概念:
            git     是一种版本控制系统,是一个命令,是一种工具
            gitlib  是用于实现 git 功能的开发库 
            github  是一个基于 git 实现的在线代码托管仓库,包含一个网站界面,向互联网开放
            gitlab  是一个基于 git 实现的在线代码仓库托管软件,一般用于在企业内部网络搭建 git 私服
         注: gitlab-ce 社区版 ; gitlab-ee 是企业版,收费
     1.6   持续集成系统的工作流程大概分为以下几步:
          1, 开发者将新版本 push 到 Gitlab。
          2, Gitlab 随后触发 jenkins master 结点进行一次 build。(通过 web hook 或者定时检测) 
          3, jenkins master 结点将这个 build 任务分配给若干个注册的 slave 结点中的一个,这个 slave 结点根据一个事先设置好的脚本进行 build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给 jenkins 来做。
          4, 我们在 build 中要进行编译,这里使用了分布式编译器 distcc 来加快编译速度。



2. 搭建 GitLab 平台 实验环境: centos7.4 虚拟机需要 6G,后期运行时,内存不够用,直接报错 2.1 安装gitlab插件: yum install curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python patch git -y systemctl enable sshd ----开机自启ssh服务 systemctl start sshd ----启动ssh服务 systemctl enable postfix ----开机自启邮件服务 systemctl start postfix ----启动邮件服务 iptables -F ---清空防火墙规则 -------------firewalld,selinux必须要关闭-------------- systemctl stop firewalld---->systemctl disable firewalld cat /etc/sysconfig/selinux



2.2  安装gitlab
            方法1. yum下载比较慢,直接用迅雷下载
             https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm
             rpm -ivh  gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm
             rpm -qa | grep git
             方法2. 配置yum源,使用yum安装
               vim gitlab.repo   ----新建的文件
               [gitlab-ce]
                name=gitlab-ce
                baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
                repo_gpgcheck=0
                gpgcheck=0
                enabled=0
                gpgkey=https://packages.gitlab.com/gpg.key
     2.3 安装完之后
          修改外部访问地址 vim /etc/gitlab/gitlab.rb
          修改 external_uel 'http://gitlab.example.com'    gitlab.example.com改为本机的外网ip
          修改gitlab服务配置文件,都需要执行gitlab-ctl reconfigure-----重新配置应用程序
          gitlab-ctl start/stop/restart/status ---启动/关闭/重启/查看状态gitlab


 

jenkins pipeline 拉取gitee代码_测试

     一定要确定80端口没被占用,gitlab是基于Nginx,在启动关闭重启的时候可以看到很多服务。 



 3.  汉化版gitlab 

         3.1 git clone https://gitlab.com/xhang/gitlab.git   #下载汉化补丁 

                    我用本地下载好的汉化包

                    tar zxvf gitlab-patch-zh.tat.gz 

              cat /root/gitlab/VERSION   ----汉化补丁版本

          3.2    停止gitlab服务

                    gitlab-ctl  stop

           3.3    cd /root/gitlab      ----切换到汉化包目录,不切换执行下面的命令报错

                    git  diff  v10.2.3  v10.2.3-zh  > ../10.2.3-zh.diff      ----比较汉化标签和原标签,导出 patch 用的 diff 文件到/root 下

           3.4     patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 </root/10.2.3-zh.diff     ----将 10.2.3-zh.diff 作为补丁更新到 gitlab 中

                     gitlab-rails目录存放于 web 前端相关的页面