代码推送到gitlab上之后,现在我们就需要编写项目的ci文件,这样gitlab才能执行CI流程。
将项目关联到Runner
因为Runner可能有多个,项目也可能有多个,那到底哪个项目应该执行哪些Runner,这里需要指定下。当然,这也看你安装Runner的Runner的类型。 具体可以看这里的文档说明 docs.gitlab.com/ce/ci/runne…
看下我安装的gitlab-runner
因为是specific的,所以需要将Runner关联到项目之后,项目才可以使用这个Runner。
点击编辑按钮之后,进入到编辑页面:
可以看到,我们刚刚创建的项目已经在这里了,点击enable启用就好了。
最简单的CI
在项目的根目录添加.gitlab-ci.yml文件,内容如下:
test:
script:
- ls
然后提交代码,查看gitlab的CI执行效果:
从图中可以看到,我们写的ci,已经正常执行了。
上面的ci内容,只是执行了ls命令,并没有做其他的事情,这里只是先做一个示例。
代码提交之后,自动执行安装编译
将ci文件的内容,修改如下:
test:
script:
- pwd
- yarn
- ng build
- cp -r ./dist/angular-frontend /data/sites/
这样修改之后,在提交了ci文件之后,就会自动执行script中的命令。
首先输出当前所在目录,然后执行yarn安装依赖包,最后使用ng build命令来构建项目。
执行了ng build之后,我们再将构建好的内容,复制到指定的目录中去,下一步我们应该配置nginx,让我们能够访问到我们构建好的项目。
nginx配置
首先在服务器上安装好nginx,然后添加nginx配置,内容如下: 关于如何在centos上安装nginx,可以看这篇文章: www.tecmint.com/install-ngi…
server {
listen 81;
root /data/sites/angular-frontend;
# Load configuration files for the default server block.
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
这里为什么要监听81端口,而不是80?,因为我们现在和gitlab服务器放在同一个机器上,80已经被gitlab用了,所以这里使用81,你如果是两台不同的机器的话,就没有这个问题。
添加好上面的内容之后,启动nginx,然后打开浏览器,访问:
效果图如下:
自动部署(CD)
到这里为止,基本上所有的配置都弄好了,现在我们修改下项目的代码,然后提交,就会自动执行CI构建,构建好之后,会将构建好的项目内容复制到对应的目录中,然后刷新浏览器,就可以看到最新的内容了。