搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)
地址:https://my.oschina.net/u/3375733/blog/1812886项目本地开发完成后,我们就需要将代码部署到线上服务器。在当下微服务、集群等的流行,单靠传统的部署显然是无法满足当下的需求;但是我们通过Gitlab和Jenkins这两个常用的开源项目,便可搭建自己公司的代码管理工具和自动化部署平台。一、GitlabGitlab 是基于 R...
地址:https://my.oschina.net/u/3375733/blog/1812886
项目本地开发完成后,我们就需要将代码部署到线上服务器。在当下微服务、集群等的流行,单靠传统的部署显然是无法满足当下的需求;但是我们通过Gitlab和Jenkins这两个常用的开源项目,便可搭建自己公司的代码管理工具和自动化部署平台。
一、Gitlab
Gitlab 是基于 Ruby On Ralis 的一个开源版本管理系统,实现一个自托管的 Git 项目仓库。便于对公司的代码管理,我们可以在内网的服务器上搭建一套 Gitlab 系统。
Gitlab 可以通过官网 https://about.gitlab.com/downloads/ ,选择所需的服务器版本,然后根据提供的安装步骤进行安装,如下图所示:
安装好后可以通过提供的管理员账号进行登录,Gitlab 的使用方式(GitLab 中文社区版:https://gitlab.com/larryli/gitlab/)和 Github 类似,我们可以为项目工程新建一个 git ,如下图所示:
一般来说,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 目录下,并生成一些目录及配置文件,如下所示:
Jenkins 中以 ‘Job’ 作为任务单位,我们可以通过新建 Job 进行配置,如下图所示:
General : 主要包含了 Job 的基本信息配置,例如项目名称、描述等属性,如下图所示:
源码管理:可以和 git 配合使用,主要用于 jenkins 拉取源码,如下图所示:
构建触发器:对于在开发环境经常需要发布的项目来说,可以使用构建触发器,在 git push 后自动部署到开发服务器上,如下图所示:
在 Gitlab 中配置 Jenkins 中提供的 Gitlab CI Service URL,即可在分支 push 的时候就执行该 Job ,如下图所示:
构建环境:对 jenkins 所在的服务器上的环境做相应的配置,如下图所示:
构建:执行 shell 脚本,例如进行 npm run build 的编译行为,将源码编译成最终可执行的文件,并进行压缩合并及发布到线上服务器。
构建后操作:整个任务部署完成后进行的操作,在这里可以配置邮件通知等行为。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)