前言
公司前端开发中,每次修改代码之后都得手动npm打包一次,然后传给后台运维合成包,之后部署到相应的测试服务器上。这样会浪费很多时间在打包上面。所以让我研究一下,有没有工具可以自动打包,预设一个时间,或者每次使用git push上代码。在仓库修改一下代码,就可以自动检查一下语法,如果语法没问题,就自动打包出包,然后自动部署到预设的服务器上。
通过对需求的分析和对工具的对比,最终选择了gitlab的ci&cd功能。折腾了近一周,终于完成。
折腾一下
虚拟机搭建(如果不需要搭建gitlab本地服务器可以跳过此步骤)
因为公司代码是机密,不能上传到外网,所以不能直接使用gitlab,而是在先要在本地搭建一个gitlab服务器,将代码放在本地,让gitlab托管即可。因为公司没有多余的服务器给我使用,我在自己电脑搞了个虚拟机。 首先下载了VMware(百度搜就能搜到,激活码也是百度搜),然后去ubuntu官网下载一个光盘镜像,装上虚拟机系统。
搭建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分钟。
之后使用
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 管理员密码,下面就可以正常使用了。
root账号添加普通账号并分组分权限
首先导入账号
导入用户
然后创建组,并将人分入组
之后就可以登陆子账号,创建项目。
也可以从 github等导入项目
自此,账号分配完成。
git ci&cd配置(这里是在windows下面安装的,其他操作系统同理)
首先下载gitlab-runner,在你下载的gitlab-runner.exe文件夹中使用powershell以管理员身份运行,输入
./gitlab-runner.exe register
然后去gitlab的settings页面找到url和token
以此输入进去
注册完毕,去刚刚查看url和token页面查看
是这样就绑定成功了。如果是灰色,使用命令
gitlab-runner run
接下来编写 gitlab-ci.yml文件,具体咋写自行百度。
自此基本上大功告成。只要每次本机push了代码,或者是在仓库修改了代码,就会自动的打包。也可以设置时间,时间到了自动打包。对了,打包之后,去你的gitlab-runner文件夹中可以找到打包之后的文件夹。
后记
这次折腾让我受益良多,从一开始不懂疯狂百度,到之后去官网找解决方案,锻炼了许多许多。