4.添加Angular项目的CI脚本,提交到gitlab实现CI&CD

2,140 阅读2分钟

代码推送到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,然后打开浏览器,访问:

mygitlab.com:81

效果图如下:

自动部署(CD)

到这里为止,基本上所有的配置都弄好了,现在我们修改下项目的代码,然后提交,就会自动执行CI构建,构建好之后,会将构建好的项目内容复制到对应的目录中,然后刷新浏览器,就可以看到最新的内容了。