搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

时间:2024-05-20 20:25:26

地址:https://my.oschina.net/u/3375733/blog/1812886

  项目本地开发完成后,我们就需要将代码部署到线上服务器。在当下微服务、集群等的流行,单靠传统的部署显然是无法满足当下的需求;但是我们通过Gitlab和Jenkins这两个常用的开源项目,便可搭建自己公司的代码管理工具和自动化部署平台。

一、Gitlab

        Gitlab 是基于 Ruby On Ralis 的一个开源版本管理系统,实现一个自托管的 Git 项目仓库。便于对公司的代码管理,我们可以在内网的服务器上搭建一套 Gitlab 系统。

        Gitlab 可以通过官网 https://about.gitlab.com/downloads/   ,选择所需的服务器版本,然后根据提供的安装步骤进行安装,如下图所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

        安装好后可以通过提供的管理员账号进行登录,Gitlab 的使用方式(GitLab 中文社区版:https://gitlab.com/larryli/gitlab/)和 Github 类似,我们可以为项目工程新建一个 git ,如下图所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)  

        一般来说,git 项目会分成 master 、develop 、feature、hotfix 这几种分支类型:

        mater 为主分支,主要用于发布,代码永远处于稳定可产品化发布的状态。

        develop 为开发分支,主要记录开发状态下相对稳定的版本。

        feature 为功能分支,从 develop 上拉取代码,开发完成后再合并到 develop 分支上。经常用于一个大版本 develop 拆分成几个 feature 的场景,便于多个开发人员在同一版本迭代中开发各自不同的功能点,避免代码冲突,在开发完成后再合并到 develop 分支中进行测试。

        hotfix 为紧急线上修复分支,需要从 master 上拉取分支进行 bug 修复,修复完成后分别并入 master 和 develop 分支。

二、Jenkins

        Jenkins 是一个开源的持续集成系统,方便开发者利用图形化界面进行项目部署发布等固定操作,通常也会和 Gitlab 配合起来,在 git push 完成后触发设定好的操作,例如将代码部署到某个开发环境中。

        Kenkins 本身是用 Java 开发的,需要 jdk 的环境,再从 http://mirrors.jenkins-ci.org/ 下载最新的 war 包,然后解压到某个固定目录就算安装完成了,非常方便。直接使用命令行 java -d64 -jar jeckins.war 即可,如果要以后台进程的方式启动,改成nohup java -d64 -jar jeckins.war & 即可,启动过程中,它会将 war 包解压到 ~/.jenkins 目录下,并生成一些目录及配置文件,如下所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

            搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

 

        Jenkins 中以 ‘Job’ 作为任务单位,我们可以通过新建 Job 进行配置,如下图所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

        General : 主要包含了 Job 的基本信息配置,例如项目名称、描述等属性,如下图所示:

         搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)       

        源码管理:可以和 git 配合使用,主要用于 jenkins 拉取源码,如下图所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins) 

        构建触发器:对于在开发环境经常需要发布的项目来说,可以使用构建触发器,在 git push 后自动部署到开发服务器上,如下图所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

        在 Gitlab 中配置 Jenkins 中提供的 Gitlab CI Service URL,即可在分支 push 的时候就执行该 Job ,如下图所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

        构建环境:对 jenkins 所在的服务器上的环境做相应的配置,如下图所示:

        搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

        构建:执行 shell 脚本,例如进行 npm run build 的编译行为,将源码编译成最终可执行的文件,并进行压缩合并及发布到线上服务器。

        构建后操作:整个任务部署完成后进行的操作,在这里可以配置邮件通知等行为。