项目的CICD(未完)

整个CI流程如下
研发人员在本地编写代码,再Push到 GitLab;
GitLab根据仓库项目配置中的CI配置,触发一个Runner启动运行;
Runner根据代码库中的 .gitlab-ci.yml 文件指令运行持续集成相关的工作;
Runner运行完毕后,将结果返回到GitLab;
研发人员在GitLab上查看结果
整个过程,研发人员只需要关心三种操作:
项目管理员,在GitLab中开启CI,并选择一个合适的Runner;
项目管理员,参考Yml模板编写持续集成命令;
研发人员,提交后关心持续集成结果并修复问题。

Runner的概念:Runner 是任务的实际执行者, 可以在 MacOS/Linux/Windows 等系统上运行。使用 golang 进行开发。 同时也可部署在 k8s 上;Kubernetes (K8s) 是一个开源系统,用于容器化应用的自动部署、扩缩和管理。

springboot项目接入过程:参考https://docs.gitlab.com/ce/ci/quick_start/README.html
现在本地项目的跟目录下,加入一个.gitlab-ci.yml文件,一个模板配置如下:

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle
  - mkdir -p `pwd`/.gradle
  - ln -s /opt/jacoco.gradle `pwd`/.gradle/init.gradle

cache:
  paths:
    - .gradle/wrapper
    - .gradle/caches

stages:
  - test

sonar_test_job:
  stage: test
  tags:
    - java8
    - gradle2.14
  script:
    - gradle clean test jacocoTestReport -Dfile.encoding=UTF-8
    - sonar
  artifacts:
    paths:
      - build/reports/jacoco
      - "*/build/reports/tests"
    when: always
    expire_in: 1 day
services:
  - redis:xxx-2.8
  - td-agent:0.0.1
  - zookeeper:xxx-3.4.10

有关yml语法可参考:https://en.wikipedia.org/wiki/YAML
提交之后,在项目master 进入 gitlab 页面中的 Settings→CI/CD→General pipelines settings 中 “Test coverage parsing”,填入^<name>:\s*([\d.]{1,6})%$
其中的 使用项目的 rootProject.name替换,(通常在 settings.gradle 中设置,如果没有被设置,即为项目名)
在这里插入图片描述
在 Settings→CI/CD→General pipelines settings 页面最底端,将 Coverage report 的 markdown 代码放入项目根目录下的 [Readme.md]文件中(如果没有,请先创建 [Readme.md]),最终的效果如下图:
在这里插入图片描述
如何本地测试
对于maven项目
执行mvn install, 在项目路径下,有个叫site的package,里面有jacoco或者sonarqube的包,打开,有一个index.html文件,用浏览器打开,就可以看到覆盖率报告,还有error、bad smell等也可以看到

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值