Gitlab CI 之单元测试和代码扫描
一 代码扫描
1.1 sonarqube 规范
由于项目较多,sonarqube 的 token 在用户下定义,这样多项目就可以公用这一个 token
1.2 变量
SONAR_TOKEN:sonarqube token,在 sonarqube 服务器创建在用户下,所有项目统一用此 token,该变量设置在 gitlab 服务端环境变量中。 * *
SONAR_HOST:sonarqube 服务器地址,在该变量设置在 gitlab 服务端环境变量中。
PROJECT_NAME:项目名称,放在全局变量中
1.3 CI 文件
二 单元测试
将单元测试集成在 CI 的 test stage 中,然后将 deploy pages 集成在 deploy 步骤中。
2.1 Gitlab Pages 开启
开启 gitlab pages 需要在 gitlab 服务端配置进行开启,需要配合 gitlab CI 来完成,需要注意,名字必须为 pages,stage 必须为 deploy。Gitlab pages 会一直去在开启了 gitlab pages,这个存储库的 public 目录找静态文件现实在 gitlab pages 中,注意:这个 public 是指存储库的 public,与项目结构无关。换言之,这个 public 目录不可见。
启用 gitlab pages
编辑/etc/gitlab/gitlab.rb,启用 gitlab page
执行gitlab-ctl reconfigure
生效启用 pages,
使用 IP 加端口方式访问
但是如果你不想那么麻烦还得配置域名的话,这里也有解决方法,由于 GitLab Pages 服务是部署到 Nginx 中,我们可以同配置 Nginx 来通过 IP 地址访问。
首先要找啊找,找到 Pages 的发布位置,和 GitLab 内置 Nginx 的位置,分别如下:
1、Pages 部署目录:/var/opt/gitlab/gitlab-rails/shared/pages
2、内置 Nginx 目录:/var/opt/gitlab/nginx
使用 IP 加端口方式访问,需要配置 gitlab nginx,编辑配置文件/var/opt/gitlab/nginx/conf/gitlab-pages.conf
使用 restart 来重新生效gitlab-ctl restart nginx
。
2.2 执行单元测试
执行单元测试生产 html 报告,生成页面文件在 coverage 目录中。
2.3 部署 pages
上一步已经完成了单元测试并根据单元测试完成覆盖 html 文件生成,在此部署将 pages 进行部署,注意:名字必须为 pages,且 stage 为 deploy,其中该步骤依赖于生成静态文件的 stage,并将制品在该步骤中进行传递,重命名为 public,由于之前已经配置了 nginx,此刻,利用 IP 端口就能访问到 public 下面的文件。
访问:通过项目名称+ public 进行访问。
参考链接
https://about.gitlab.com/blog/2016/11/03/publish-code-coverage-report-with-gitlab-pages/
https://docs.gitlab.com/ee/user/project/pages/index.html
https://gitlab.com/pages
https://www.youtube.com/watch?v=dD8c7WNcc6s
https://my.oschina.net/doctorlzr1988/blog/3044964
https://docs.gitlab.com/ee/ci/yaml/#include
https://docs.gitlab.com/ee/ci/yaml/includes.html
版权声明: 本文为 InfoQ 作者【雪雷】的原创文章。
原文链接:【http://xie.infoq.cn/article/35a8ada6ce139599da1b1b1b4】。文章转载请联系作者。
评论