折腾一下gitlab的ci&cd自动检查、打包、部署代码

2,664 阅读3分钟

前言

公司前端开发中,每次修改代码之后都得手动npm打包一次,然后传给后台运维合成包,之后部署到相应的测试服务器上。这样会浪费很多时间在打包上面。所以让我研究一下,有没有工具可以自动打包,预设一个时间,或者每次使用git push上代码。在仓库修改一下代码,就可以自动检查一下语法,如果语法没问题,就自动打包出包,然后自动部署到预设的服务器上。

通过对需求的分析和对工具的对比,最终选择了gitlab的ci&cd功能。折腾了近一周,终于完成。

折腾一下

虚拟机搭建(如果不需要搭建gitlab本地服务器可以跳过此步骤)

因为公司代码是机密,不能上传到外网,所以不能直接使用gitlab,而是在先要在本地搭建一个gitlab服务器,将代码放在本地,让gitlab托管即可。因为公司没有多余的服务器给我使用,我在自己电脑搞了个虚拟机。 首先下载了VMware(百度搜就能搜到,激活码也是百度搜),然后去ubuntu官网下载一个光盘镜像,装上虚拟机系统。

image.png

搭建gitlab本地服务器(如果不需要搭建gitlab本地服务器可以跳过此步骤)

接下来是本地搭建。这里我们搭建免费的社区版ce

方法1.离线安装

直接去packages.gitlab.com/gitlab/gitl… 网站上下载对应的安装包,把安装包下载完后放在目录下,打开终端解压并安装。

sudo dpkg -i gitlab-ce_12.0.3-ce.0_amd64.deb
方法2.在线安装
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

sudo apt-get install gitlab-ce

如果出现一个狐狸头的界面,代表安装成功。一般要等5-10分钟。

image.png

之后使用

sudo vim /etc/gitlab/gitlab.rb

external_url = 'http://git.example.com'修改成自己的 IP 或者 HostName,比如:external_url = 'http://127.0.0.1' 默认80端口,如果怕被占用可设置别的端口。

好了,现在可以启动gitlab了

sudo gitlab-ctl reconfigure

每次配置更改之后,都需要执行上面命令,GitLab 启动好之后,浏览器输入 http://127.0.0.1  地址,初始化下 root 管理员密码,下面就可以正常使用了。

image.png

root账号添加普通账号并分组分权限

首先导入账号

image.png 导入用户

image.png 然后创建组,并将人分入组

image.png 之后就可以登陆子账号,创建项目。

image.png 也可以从 github等导入项目

image.png 自此,账号分配完成。

git ci&cd配置(这里是在windows下面安装的,其他操作系统同理)

首先下载gitlab-runner,在你下载的gitlab-runner.exe文件夹中使用powershell以管理员身份运行,输入

./gitlab-runner.exe register

然后去gitlab的settings页面找到url和token

image.png 以此输入进去

image.png 注册完毕,去刚刚查看url和token页面查看

image.png 是这样就绑定成功了。如果是灰色,使用命令

gitlab-runner run

接下来编写 gitlab-ci.yml文件,具体咋写自行百度。

image.png

自此基本上大功告成。只要每次本机push了代码,或者是在仓库修改了代码,就会自动的打包。也可以设置时间,时间到了自动打包。对了,打包之后,去你的gitlab-runner文件夹中可以找到打包之后的文件夹。

image.png

后记

这次折腾让我受益良多,从一开始不懂疯狂百度,到之后去官网找解决方案,锻炼了许多许多。